Roblox 接受来自游戏手柄的输入,例如 Xbox 和 PlayStation 控制器。为了简化 跨平台 输入,包括游戏手柄,Roblox 提供了 输入动作系统,以定义 动作,例如“跳跃”、“冲刺”或“射击”,并为多个硬件输入设置 绑定 来驱动这些动作。
在绑定游戏手柄输入时,请参阅 常见控制方案,以为玩家创建一致的游戏手柄体验。在设置输入后,您可以通过在支持的控制器上包含 触觉反馈 来增强玩家的体验。
在构建对游戏手柄的支持时,请记得经常使用连接的游戏手柄或 Studio 中的 控制器模拟器 进行测试。
输入类型检测
在跨平台开发中,确定并响应玩家使用的 PreferredInput 类型非常重要,通常是为了确保 UI 元素(如屏幕上的按钮和菜单)优雅地工作,并支持跨设备的交互。
例如,控制台假设游戏手柄是默认输入,但 PC 或笔记本电脑上的玩家也可以选择连接蓝牙游戏手柄。在这种情况下,鼠标/键盘仍然是该玩家的有效输入,但您可以假设他们希望将连接的游戏手柄作为 主要 输入类型。
有关更多信息,请参见 输入类型检测。
常见控制方案
在考虑 输入动作系统 的特定控制绑定时,最好在不同游戏之间建立一致性。以下输入绑定将帮助玩家立即感到熟悉并舒适于游戏手柄控制。
| 输入 | 常见用例 |
|---|---|
| ButtonA | 接受玩家提示或 GUI 选择。可替代用于主要动作,例如跳跃。 |
| ButtonB | 取消玩家提示或 GUI 选择。可替代用于次要动作,例如闪避、翻滚或冲刺。 |
| Thumbstick1 | 通常与角色移动相关联。 |
| Thumbstick2 | 通常与相机移动相关联。 |
| ButtonL2, ButtonR2 | 通常用于主要动作,例如射击。 |
| ButtonL1, ButtonR1, ButtonX, ButtonY | 次要动作,例如重新装填、瞄准或访问库存或小地图。 |

触觉反馈
许多游戏手柄控制器内置电机以提供触觉反馈。添加震动和振动可以极大增强玩家的体验,并提供超越视觉或音频的细微反馈。
Roblox 支持 PlayStation 游戏手柄、Xbox 游戏手柄和 Quest Touch 控制器的触觉反馈。触觉反馈通过 HapticEffect 实例进行管理,可以设置为特定的 Type,例如 GameplayCollision 或 UIClick。
一旦 HapticEffect 就位,您可以通过 Play() 方法启动它,例如:
local Workspace = game:GetService("Workspace")
local effect = Instance.new("HapticEffect")
effect.Type = Enum.HapticEffectType.GameplayExplosion
effect.Parent = Workspace
-- 播放触觉效果
effect:Play()控制器模拟
使用 控制器模拟器 在 Studio 中直接测试游戏手柄输入,而无需连接物理控制器。它显示模拟设备的图片,并在输入到达时点亮其控制,这有助于确认您的 UserInputService 处理程序和 输入动作系统 绑定按预期反应。