This document is about: QUANTUM 3
SWITCH TO

Getting Started

使用 KCC 預製變體創建角色

創建自訂角色最簡單的方法是從預設的KCC預製物件創建一個變體:

  1. 右鍵點擊KCC預製物件(位於Assets/Photon/QuantumAddons/KCC/AssetDB/Entities)。
  2. 選擇Create > Prefab Variant
Create prefab variant
創建 KCC 預製變體
  1. 新增自己的視覺效果和自訂元件。
  2. 角色已準備就緒。繼續進行移動角色

從頭開始創建角色

  1. 創建一個新的玩家預製物件。
Create player prefab
創建玩家預製物件
  1. 在根遊戲物件上新增Quantum Entity ViewQ Prototype KCC。可選新增Capsule Collider
Add components
為玩家預製物件新增元件
  1. 配置遊戲物件
  • 設定遊戲物件的圖層(可選)。
  • Quantum Entity View中將Bind Behaviour設為Verified
  • Quantum Entity Prototype中將Transform設為3D
  • 啟用PhysicsCollider3D並將先前創建的Capsule Collider連結到SourceCollider(可選)。
  • Q Prototype KCC中設定參考至KCC Settings資產。
  1. 角色已準備就緒。繼續進行移動角色

配置 KCC 行為

KCC 附加元件包含一些預先配置的資產。

  1. 選擇Assets/Photon/QuantumAddons/KCC/AssetDB/KCCSettings.asset以配置預設值(半徑、高度、碰撞層遮罩)。這些值應與上方創建的膠囊碰撞器中的值匹配。
Configure KCC settings
配置 KCC 設定
  1. 如果您正在創建新的KCC Settings資產,請連結 KCC 處理器。這些處理器負責實際的移動邏輯,更多資訊可在處理器章節中找到。預設處理器位於Assets/Photon/QuantumAddons/KCC/AssetDB/Processors

移動角色

移動過程在KCC元件更新中處理。這由KCC System管理,因此必須將其新增到您的Systems Config中。

Add KCC System
新增 KCC 系統

以下程式碼範例設定角色的視角旋轉和輸入方向給KCC,隨後由EnvironmentProcessor(或您自己的處理器)處理。

C#

public unsafe class PlayerSystem : SystemMainThreadFilter<PlayerSystem.Filter>
{
    public struct Filter
    {
        public EntityRef Entity;
        public Player*   Player;
        public KCC*      KCC;
    }

    public override void Update(Frame frame, ref Filter filter)
    {
        Player* player = filter.Player;
        if (player->PlayerRef.IsValid == false)
            return;

        KCC*   kcc   = filter.KCC;
        Input* input = frame.GetPlayerInput(player->PlayerRef);

        kcc->AddLookRotation(input->LookRotationDelta.X, input->LookRotationDelta.Y);
        kcc->SetInputDirection(kcc->Data.TransformRotation * input->MoveDirection.XOY);

        if (input->Jump.WasPressed == true && kcc->IsGrounded == true)
        {
            kcc->Jump(FPVector3.Up * player->JumpForce);
        }
    }
}

也可以完全跳過處理器功能,直接使用kcc->SetKinematicVelocity();設定速度。

更多移動程式碼範例可在範例專案中找到。

Back to top