控制器

*此内容使用人工智能(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 属性单独自定义转速。
    UpDirection指示 ControllerManager.RootPart 向上的向量的 Vector3

脚本化

要通过脚本为所有角色设置控制器配置:

  1. ServerScriptService 中创建一个新的服务器端 Script 并将其重命名为 ControllerScript

  2. 将以下代码复制并粘贴到新脚本中。此示例增加了基于地面的移动/转动速度,并增加了一点加速和减速时间。您可以自由调整其他属性,例如上面 表格中描述的 或每个类的文档中的属性(ControllerManagerGroundControllerAirControllerClimbControllerSwimController)。

    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 是我们在美国及其他国家或地区的注册与未注册商标。