Agent Skills
返回列表
🤖

输入系统

AI Agent 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/input-systems-sh-nkvt6m

技能介绍

为什么需要输入抽象层

如果直接在游戏逻辑里写 if (Input.IsKeyDown(KeyCode.Space)) Jump(),问题会在项目变大时集中爆发:玩家想改键?你得在散落各处的按键判断里逐一替换;要支持手柄和触屏?每个操作都要再写一套映射;想做无障碍重映射?几乎等于重写输入系统。罪魁祸首就是缺少一层间接——游戏玩法本应关心"跳跃是否被按下",而不是"空格是否被按下"。

核心能力

这个技能定义了一个引擎无关的输入架构,核心是把物理输入(键盘、手柄、触摸)映射到命名动作(jump、interact、move)。游戏玩法只读取动作,绑定关系作为数据存在,因此重绑定、多设备切换、无障碍调整都变成配置变更,而非代码改动。

关键步骤包括:

  • 定义动作而非按键:动作是稳定的契约,绑定是可替换的数据。
  • 按设备绑定:每个动作分别持有键盘、手柄、触摸的绑定;活动设备由最后一次输入决定,提示文字随之切换。
  • 区分边沿与保持:离散动作(跳跃、交互)用 pressed-this-frame 边沿检测,连续动作(移动、瞄准)用 held 电平检测,混淆两者会导致重复触发或漏判。
  • 模拟输入过滤:对摇杆和扳机应用死区和灵敏度曲线,消除静止漂移。
  • 手感缓冲:输入缓冲让略早的按键仍然生效;郊狼时间允许离开边缘后短时间内跳跃,让平台跳跃更宽容。
  • 重绑定成为一等公民:捕获下一个输入、检测冲突、保存绑定,并提供恢复默认。

适用边界

这个技能是架构指南,不包含引擎的具体 API。Unity 需要配合 Input System,Unreal 需要 Enhanced Input,Godot 使用 InputMap。它也不负责按键绑定的持久化(那是 save-systems 的工作),更不涉及缓冲所喂养的移动物理(见 physics-tuning)。当你需要的是某个引擎的输入包时,请转向对应的具体技能。

使用场景

  • 平台跳跃游戏玩家抱怨跳跃生硬,需要在物理判定前加入输入缓冲与郊狼时间窗口
  • 手柄玩家反馈界面仍显示“按空格跳跃”,需要按最后活动设备切换按键提示图标
  • 发售前做无障碍审查:为无法同时按键的玩家提供全量重映射与开关替代方案
  • 计划开放玩家自定义键位,需要实现冲突检测、保存与恢复默认的重绑定界面

适合人员

  • 独立游戏开发者:同时在 Unity 和 Godot 出原型,想让输入架构两边通用
  • 游戏无障碍顾问:审查控制方案是否存在强制同按、不可重映射等障碍
  • 手感调参工程师:负责平台跳跃物理,需要输入缓冲窗口与之精确配合
  • 项目技术负责人:清理玩法代码里散落的硬编码按键,统一收敛到命名动作层