GIPS 的输入缓冲用于在当前输入权限拒绝输入时,先把指定标签和触发阶段保存在活动窗口中,再按窗口策略立即或在关闭时交给当前处理器链。它不替玩法系统定义连招、动作时长或动画通知。
定义窗口
在 UGIPS_InputConfig 的 InputBufferDefinitions 中为每个窗口配置 Tag、BufferType 和 AllowedInputs。每个允许输入可限定输入标签与 TriggerEvents;列表为空时允许该标签的任意触发阶段。窗口标签应唯一且有效。
三种窗口策略
| 行为 |
|---|---|
| 每个活动窗口保留最后一次匹配的输入;关闭该窗口时释放。 |
| 匹配的输入一到达就立即释放,并关闭所有活动窗口。 |
| 设计意图是按 |
窗口生命周期与并发
通过 OpenInputBufferWindow(WindowTag) 和 CloseInputBufferWindow(WindowTag) 管理窗口;窗口定义必须已存在于 InputConfig。组件支持多个不同标签的窗口同时活动,一次被拒绝的输入可以被多个允许它的活动窗口分别记录。
若关闭的窗口内有缓冲输入,GIPS 会直接把该输入交给释放时的当前 InputControlSetup 处理器链,不会重新运行权限检查器;释放后所有活动窗口都会关闭。关闭空窗口时只关闭指定窗口。StateTree 也提供 GIPS Buffer Window Scope、监听和等待相关任务。
输入何时进入缓冲
缓冲只发生在内部处理路径中:当前设定先拒绝输入,且 bEnableInputBuffer 已开启、活动窗口包含匹配的输入标签和阶段时,才会保存。权限通过的输入直接进入处理器;启用 bProcessingInputExternally 时会跳过检查和缓冲。
缓冲窗口本身没有持续时间字段,也没有由 GenericInputSystem 提供的 ANS_GCS_InputBufferWindow 动画通知。由项目逻辑、蓝图、动画流程或 StateTree 在适当时机调用开启与关闭 API。
使用建议
LastInput适用于在窗口结束时执行最近一次预输入;Instant适用于窗口内立即响应。- 让窗口只在玩法需要的时间段保持活动。注意:释放任意活动窗口中的缓冲输入会关闭全部活动窗口。
- 如果需要严格的优先级语义,先修正或验证当前
HighestPriority实现;目前可用LastInput或Instant表达已验证的行为。
相关页面
- 输入控制设定:启用缓冲并配置允许输入的权限规则。
- 输入系统组件:窗口 API、事件和值读取。
- 快速上手与集成:创建并指派输入配置资产。
- 调试指南:查看活动窗口和缓冲记录。