控制器

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

角色控制器庫 (CCL)中,一個核心的 ControllerManager 實例處理角色的物理模擬及與環境的互動。這包括幾個意圖改變的移動/感覺設計,以解決舊版 Humanoid 的不一致問題,以及物理改進,如地面摩擦、線性加速曲線,和在跳躍時合理的線性和角動量守恆。

啟用 CCL

CCL是透過Studio的虛擬角色設定視窗自選的。要啟用它:

  1. 虛擬角色選項卡,打開虛擬角色設定

    虛擬角色設定在Studio的工具列中
  2. 在視窗左側選擇動作選項卡,並在能力部分中,選擇角色控制器庫

    虛擬角色設定視窗中的角色控制器庫切換
  3. 所有標準能力,如跑步跳躍攀爬默認啟用。要在運行時禁用其中任何一項,請取消選中相關框。

結構

在角色模型中的核心 ControllerManager 實例下,個別控制器如 GroundControllerAirController 定義如何將移動應用於角色。然後,能力與 ControllerManager 及其子類互動,以修改控制器行為或在控制器之間切換。

配置

當遊戲運行中(或通過從 ServerScriptService 運行的腳本),您可以實驗核心ControllerManager 和內置控制器。

執行時

要在執行時實驗控制器配置:

  1. 開始一個遊玩測試。

  2. 檢查器 中,找到 Workspace 中的角色模型,然後展開 ControllerManager 樹狀結構:

  3. 選擇 ControllerManager 或其控制器子類中的一個,在 屬性 窗口中,自定義如以下表格所總結的屬性(請注意這些表格並不詳盡,請參閱 API 類別文檔 獲取其他屬性選項)。

    屬性描述
    BaseMoveSpeed所有控制器使用的基本線性運動速度。控制器通過其 MoveSpeedFactor 屬性分別自定義運動速度。
    BaseTurnSpeed所有控制器用於使角色面朝所需方向的基本角度轉速。一些控制器通過其 TurnSpeedFactor 屬性分別自定義轉速。
    UpDirectionVector3,表示 ControllerManager.RootPart 的向上向量。

腳本方式

要通過腳本為所有角色設置控制器配置:

  1. ServerScriptService 中創建一個新的服務器端 Script,並將其重命名為 ControllerScript

  2. 將以下代碼複製並粘貼到新腳本中。這個示例會提高基於地面的移動/轉向速度,並添加輕微的加速和減速時間。隨意調整例如上面表格中描述的其他屬性或每個類別的文檔 (ControllerManager; GroundController; AirController; ClimbController; SwimController)。

    Script in ServerScriptService

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")
    if ControllerManager then
    local GroundController = ControllerManager:FindFirstChild("GroundController")
    if GroundController then
    -- 將移動和轉向速度加倍
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- 添加輕微的加速和減速
    GroundController.AccelerationTime = 0.2
    GroundController.DecelerationTime = 0.4
    end
    end
    end
    local function onPlayerAdded(player)
    if player.Character then
    onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。