关于 roblox-input
Roblox Input 是用于处理客户端触控、手柄、键盘、鼠标和动作输入的开发技能。它介绍跨平台绑定、结合界面状态限制游戏输入、取消行为及测试工具。
主要功能
- 01输入事件处理
- 02ContextActionService 绑定模式
- 03基于 PreferredInput 显示控件
- 04根据界面焦点限制游戏输入
- 05持续输入的取消条件
- 06使用 Device Simulator 和 Controller Emulator 测试
适用场景
- 01构建跨平台控制
- 02添加移动端动作按钮
- 03在菜单或文本输入时阻止游戏操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-input安装后在 Claude Code 中输入/roblox-input确认已加载。
附带文件references/full.md
详细介绍
Roblox 输入
何时加载
触摸、游戏手柄、键盘、鼠标或动作输入、屏幕操作按钮、跨平台绑定。仅限客户端;服务器权威模拟输入使用 Input Action System。
快速参考
- 事件:
InputBegan/Changed/Ended会提供(input, gameProcessedEvent);请通过它进行筛选,以用于游戏逻辑。滚轮只会触发InputChanged。 - **绑定:**优先使用
ContextActionService:BindAction(name, handler, touchButton, ...keys);根据state判断(触摸输入为KeyCode.Unknown);绑定会按顺序堆叠,因此请使用BindActionAtPriority。服务器权威:使用InputAction/InputContext和RunService:BindToSimulation()(需要Workspace.UseFixedSimulation)。 - **优先适配移动设备,同时兼顾混合设备:**根据
UserInputService.PreferredInput(Enum.PreferredInput)显示控件,并通过GetPropertyChangedSignal监听变化,不要只缓存一次TouchEnabled。 - **触摸操作按钮:**只有从按钮上开始的触摸才会触发;在按钮上滑动镜头不会触发。根据
PlayerGui.TouchGui下测量出的跳跃按钮来放置,并避开摇杆区域。 - **限制游戏逻辑的触发条件:**游戏窗口打开、
TextBox获得焦点、GuiService.MenuIsOpen为真或设置了GuiService.SelectedObject时,阻止攻击。 - **取消不等于释放:**窗口打开、触发
Cancel、装备卸下、焦点丢失、输入设备切换或手柄断开时,持续按住的输入会取消。 - **游戏手柄工具:**默认控制通过
BindActivate绑定ButtonR2;设置Tool.ManualActivationOnly = true会禁用此功能。在游戏手柄上从屏幕中心瞄准,不要使用GetMouseLocation()。 - **提示:**使用
GetStringForKeyCode(key, Enum.KeyCodeStringFormat.Abbreviated)、GetImageForKeyCode或InputActionLabel;切勿硬编码 Xbox 名称。 - **测试:**使用 Device Simulator 和 Controller Emulator;菜单焦点位于
roblox-gui。
评论
支持 Markdown