跳转到正文

快速上手与集成

从启用 GIPS、配置 InputConfig 与 InputControlSetup,到将组件接入 Pawn 并按需扩展 Processor 或 StateTree 的入门路径。

作

作者

作者

创建时间: 2025年4月09日更新时间: 2026年10月19日

目录

本页把旧版快速上手、配置说明和 GAS 集成内容合并为一条接入路径。GenericInputSystem(GIPS)1.6 建立在 Enhanced Input、Gameplay Tags 和 StateTree 之上;它负责本地输入的标签分发、权限检查和缓冲,不替项目创建输入动作,也不实现移动、战斗或网络动作。

前置条件

  • 使用 Unreal Engine 5.8 或更高版本,并启用 Enhanced Input、StateTree 和 GenericInputSystem。
  • 先准备项目自己的 Input Action、Input Mapping Context 和 Gameplay Tags。
  • 将 UGIPS_InputSystemComponent 挂到 Pawn。该组件不支持挂在 PlayerController 或 AIController 上。

接入步骤

1. 配置 Enhanced Input 资产

在项目的 Input Mapping Context 中配置按键与 Input Action。将需要交给 GIPS 管理的动作登记到 UGIPS_InputConfig 的 InputActionMappings:每项以 Gameplay Tag 对应一个 UInputAction,并可通过 bValueBinding 绑定动作值,默认开启。

组件会为每个已登记的动作绑定 Enhanced Input 的 Started、Triggered、Ongoing、Completed 和 Canceled 阶段。触发阶段不是 InputActionMappings 中的单项映射字段;权限、处理器和允许输入列表各自按阶段筛选。

2. 配置输入控制设定

创建至少一个 UGIPS_InputControlSetup,将其放入组件的 InputControlSetups。数组最后一项是当前设定。按需添加 InputCheckers、AlwaysAllowedInputs 和 InputProcessors;若要缓冲被拒绝的输入,还需在当前设定中开启 bEnableInputBuffer。

3. 配置缓冲窗口(可选)

在 UGIPS_InputConfig 的 InputBufferDefinitions 中定义窗口标签、BufferType 和 AllowedInputs。每个允许输入可以限定 Gameplay Tag 与触发阶段;TriggerEvents 为空时表示允许所有阶段。窗口没有独立的持续时间字段,由游戏逻辑、蓝图、动画流程或 StateTree 决定何时打开和关闭。

4. 添加组件并指派资产

在 Pawn 蓝图或 C++ 类中添加 UGIPS_InputSystemComponent,指派 InputConfig 和至少一个有效的 InputControlSetup。如希望组件管理该 Pawn 的映射上下文,再设置 InputMappingContext 与 InputPriority。本地玩家的 Enhanced Input 绑定会在 Pawn 的 Enhanced Input Component 准备好后建立;移除或切换控制器时会清理对应绑定。

5. 选择输入处理方式

  • 内部处理(默认):输入经过当前设定的检查器;若被拒绝且缓冲已启用、活动窗口允许该标签和阶段,则保存为缓冲输入;通过检查的输入交给匹配的处理器。
  • 外部处理:启用 bProcessingInputExternally 后,组件跳过内部权限检查、缓冲和处理器,但仍记录最后动作值并广播 OnReceivedInput。监听此事件不代表输入已通过权限检查。

GAS 与其他玩法系统

GIPS 不包含固定的 GAS 接入。项目可从 UGIPS_InputProcessor 派生处理器,把已通过检查的输入交给自己的 Ability System;自定义 UGIPS_InputChecker 则可处理项目特有的权限条件。标签关系检查器默认从实现 IGameplayTagAssetInterface 的 Pawn 读取标签;若标签来自 Ability System Component,可在派生检查器中覆盖 GetActorTags。

StateTree 接入

插件提供 GIPS Input Setup Scope、GIPS Buffer Window Scope、GIPS Listen Buffer Window 和 GIPS Wait Buffer Window 等任务,以及活动窗口和最近缓冲输入条件,可将设定和窗口的生命周期绑定到 StateTree 状态。

相关页面

  • 输入系统组件:组件配置、事件和值读取。
  • 输入控制设定:检查器、处理器和输入模式栈。
  • 输入缓冲系统:窗口策略和生命周期。
  • 调试指南:日志和 Gameplay Debugger。