mcpField
R
roblox-input

roblox-input

github.com/tabooharmony开发1381.9k 次安装2 周前更新
代码仓库

关于 roblox-input

Roblox Input 是用于处理客户端触控、手柄、键盘、鼠标和动作输入的开发技能。它介绍跨平台绑定、结合界面状态限制游戏输入、取消行为及测试工具。

主要功能

  1. 01输入事件处理
  2. 02ContextActionService 绑定模式
  3. 03基于 PreferredInput 显示控件
  4. 04根据界面焦点限制游戏输入
  5. 05持续输入的取消条件
  6. 06使用 Device Simulator 和 Controller Emulator 测试

适用场景

  1. 01构建跨平台控制
  2. 02添加移动端动作按钮
  3. 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。

详情:references/full.md

评论

支持 Markdown