This page is a work in progress and could be pending updates.

Execution Order

概述

在擴展KCC時,KCC內部邏輯的執行順序是需要考慮的。

Back To Top

簡化的執行順序

  1. KCC.SetInputDirection():在KCC內部更新之前,由玩家控制器代碼呼叫。
  2. KCC.SetLookRotation():在KCC內部更新之前從玩家控制器代碼中呼叫。
  3. 另一個設置”輸入”屬性的KCC API呼叫
  4. KCC內部更新
    1. 預先緩存KCC處理器
    2. IKCCProcessor.SetInputProperties():專用於設置輸入屬性(地面角度、基地位置、重力......)的階段。
    3. IKCCProcessor.SetDynamicVelocity():專用於計算KCCData.DynamicVelocity的階段。
    4. IKCCProcessor.SetKinematicDirection():專用於計算KCCData.KinematicDirection的階段。
    5. IKCCProcessor.SetKinematicTangent():專用於計算KCCData.KinematicTangent的階段。
    6. IKCCProcessor.SetKinematicSpeed():專用於計算KCCData.KinematicSpeed。
    7. IKCCProcessor.SetKinematicVelocity():計算KCCData.KinematicVelocity的專用階段(結合之前階段計算的運動學屬性)。
    8. 用計算出的速度進行運動。如果期望的速度太大,這個步驟可以連續執行多次(應用CCD)。
      1. 物理學查詢。
      2. IKCCProcessor.ProcessPhysicsQuery():專用於計算單個物理查詢後的屬性(例如運動速度的地面投影)。
      3. 碰撞更新:IKCCProcessor.Enter()IKCCProcessor.Exit()的呼叫返回。
    9. IKCCProcessor.Stay():專於執行自定義處理器邏輯的階段。
    10. 轉換同步。

關於處理器及其階段的更多訊息,請查看註釋代碼和KCC範例項目。

To Document Top