UGIPS_InputSystemComponent 是 GIPS 的 Pawn 级运行时入口,负责在 Enhanced Input Component 可用时绑定已配置的 Input Actions、管理输入映射上下文、分发标签化输入,以及提供输入事件和缓冲 API。
所有者与绑定生命周期
该组件只支持挂在 APawn 上。它会在 Pawn 重启和控制器变化时设置或清理输入绑定;本地玩家的映射上下文通过 UEnhancedInputLocalPlayerSubsystem 添加,并使用 InputPriority。PlayerController 或 AIController 不能直接持有该组件。
本地玩家绑定需要有效的 UEnhancedInputComponent。组件接入后会为 InputConfig 中每个有效动作绑定 Started、Triggered、Ongoing、Completed 和 Canceled。缺少动作或标签时先检查资产配置和编辑器验证信息。
组件属性
属性 | 用途 |
|---|---|
| 必填的 |
| 可选的 Enhanced Input 映射上下文;设置后组件在本地玩家子系统中添加并在清理时移除。 |
| 添加该映射上下文时使用的优先级。 |
| 至少提供一个有效设定;最后一项是当前设定。 |
| 默认关闭。开启后跳过 GIPS 内部检查、缓冲和处理器。 |
| 通过、阻止和缓冲输入历史的保留上限,默认 5,编辑器范围为 0–10。 |
InputConfig 与动作值
InputActionMappings 将输入 Gameplay Tag 映射到 UInputAction。每项的 bValueBinding 控制组件是否绑定动作值,默认开启。GetInputActionValueOfInputTag 读取当前绑定值;GetLastInputActionValueOfInputTag 读取组件最近一次收到该标签事件时记录的值。
事件监听
每个有效标签的输入回调都会在内部路径执行后广播 OnReceivedInput(蓝图)和 OnReceivedInputNative(C++)。因此,即使输入被检查器阻止或保存到缓冲,监听器仍会收到原始标签化事件;不要把该广播当成“权限已通过”的信号。
异步节点 ListenInputEvent 可按标签、触发阶段、普通/缓冲事件和精确/层级标签匹配筛选。默认是精确匹配且只监听普通事件;离开状态或不再需要时取消异步动作。
在蓝图中读取值
若要通过标签读取当前 Enhanced Input Action 值,保留对应映射的 bValueBinding 开启,并确保本地 Enhanced Input Component 已绑定。未绑定或动作无效时,读取函数会返回默认值。
外部处理模式
开启 bProcessingInputExternally 后,GIPS 不会调用当前 InputControlSetup 的检查器、缓冲流程或处理器,但仍记录最后动作值并广播输入事件。该选项适合逐步迁移到项目自有处理流程;如仍需使用 GIPS 权限和缓冲,应保持关闭。
相关页面
- 快速上手与集成:创建配置资产并接入 Pawn。
- 输入控制设定:权限检查和处理器执行规则。
- 输入缓冲系统:配置、开启和关闭缓冲窗口。
- 调试指南:查看日志和输入记录。