可以构建什么
Generic Input System 帮助你构建随玩法状态变化的输入权限和输入缓冲。它围绕挂在 Pawn 上的组件和 Enhanced Input 工作,不替换项目已有输入资产,也不接管项目最终动作同步。
可实现的玩法模式
- 攻击、闪避、互动、技能、界面和恢复状态下的不同输入权限
- 连击窗口、翻滚缓冲、技能预输入和交互确认
- 通过玩法标签选择输入行为的上下文输入
- 蓝图或 C++ 编写的输入校验与响应对象
- 状态树状态内自动启用、关闭、等待或检查输入窗口
标签化输入与控制规则
- 让动作拥有稳定玩法含义。 输入配置将输入动作映射为玩法标签,组件按 Enhanced Input 的触发阶段分发。
- 保留项目自己的映射上下文。 组件可添加和移除配置中的映射上下文,但不会要求你重建整个 Enhanced Input 资产体系。
- 按状态切换规则。 输入控制配置可随状态压入和弹出,让最后激活的配置决定当前输入允许、校验和处理方式。
- 显式保留关键输入。 总是允许的输入可绕过普通校验,例如暂停、菜单返回或项目定义的紧急操作。
校验器、处理器与缓冲窗口
- 用对象复用校验逻辑。 校验器可在蓝图或 C++ 中扩展;内置的标签关系校验器可按角色身上的玩法标签判断允许或阻止。
- 按触发阶段响应。 处理器可筛选输入标签,以及 Started、Triggered、Ongoing、Canceled、Completed 等 Enhanced Input 触发阶段。
- 用数据表达输入时机。 缓冲窗口定义允许输入,并提供
LastInput、Instant和HighestPriority策略及状态事件。当前HighestPriority实现可能被后续输入覆盖,暂不应依赖其优先级结果。 - 让多个系统观察输入。 异步蓝图监听器可按标签、触发阶段和精确/层级匹配监听普通或缓冲输入。
状态树与调试
- 让输入规则跟随状态生命周期。 状态树任务可启用输入控制配置、打开或关闭缓冲窗口、等待窗口状态或测试最近缓冲输入。
- 在运行时检查路径。 Gameplay Debugger 和
LogGIPS可显示配置、校验、缓冲、处理和当前活动窗口状态。 - 让项目继续拥有动作结果。 GIPS 决定本地输入能否通过和何时释放;攻击、移动、技能或网络同步仍由项目系统实现。
需要围绕设计的边界
- 核心组件必须挂在 Pawn;PlayerController 和 AIController 持有不受支持。
- 原始硬件输入不复制;多人项目必须同步和校验输入产生的项目级动作。
- GIPS 扩展 Enhanced Input 的状态管理,不包含完整战斗、技能或界面系统。