概述
Generic Input System 是面向 Unreal Enhanced Input 项目的输入管理插件。它通过挂在 Pawn 上的组件和数据配置,统一处理“当前状态下哪些输入可用、哪些输入要被拦截、哪些输入应先缓存再释放”。它适合动作、战斗、互动、技能、界面或状态树驱动的项目,让输入规则从分散回调回到清晰、可复用的流程里。
前提:在使用输入系统前,确保你对GameplayTags和EnhancedInput有一个基本的了解,本系统只是为它们提供了一个更灵活且强大的使用方式。
文档与支持
为什么需要 Generic Input System?
输入系统在原型阶段往往很简单:按键触发动作,动作自己判断能不能执行。项目进入战斗、互动、技能和界面并存的阶段后,输入开始受角色状态、动画时机、当前模式和优先级共同影响。攻击中是否允许跳跃,受击恢复时是否接受翻滚,连击窗口是否记住提前按下的按键,互动确认是否应该优先于战斗输入,这些规则如果没有统一流程,很容易散落在角色、技能、动画和界面代码里。
- 如何把项目已有的输入动作转换成统一的玩法含义,让战斗、互动、技能和界面共享同一套输入词汇?
- 如何随角色状态进入或离开,成组切换当前可用输入?
- 如何在连击、翻滚、技能预输入或互动确认窗口里缓存输入,并按策略释放?
- 如何让蓝图、C++、状态树和调试工具都能观察同一条输入路径?
GIPS 将输入接收、权限判断、响应处理和输入缓冲拆成稳定步骤,让项目用数据和可扩展对象管理输入流程。
关键特性
用玩法标签统一输入含义
输入配置将项目已有的 UInputAction 关联到玩法标签,组件接收 Enhanced Input 的触发后再按标签分发。你可以保留自己的输入动作和映射上下文,同时获得一套可被战斗、技能、互动和界面共用的输入语义。
让输入权限跟随状态变化
输入控制配置可以组合总是允许的输入、校验器、处理器、缓冲策略和处理顺序。状态开始时压入配置,状态结束时弹出配置,就能把“哪些输入现在可用”集中在数据和对象中管理。
在合适时机缓存和释放输入
命名缓冲窗口可以从蓝图或 C++ 打开和关闭。窗口支持最后一次有效输入、有效输入立即触发、最高优先级输入等策略,并提供窗口状态和已释放输入事件,适合连击、翻滚缓冲、技能预输入和互动确认。
用蓝图、C++ 和状态树扩展响应
项目可以扩展 UGIPS_InputChecker 与 UGIPS_InputProcessor,按输入标签、触发阶段或角色身上的玩法标签判断输入是否通过以及如何响应。状态树任务可以在状态生命周期内启用输入控制配置、管理缓冲窗口、等待窗口变化或检查最近缓存的输入。
在运行时诊断输入路径
异步蓝图节点可以监听普通输入或缓冲输入;Gameplay Debugger 和 LogGIPS 可以帮助查看输入通过、阻止、缓冲和活动窗口状态,减少“为什么这次按键没触发”的排查成本。
适用项目与人群
- 动作、战斗、冒险、格斗、角色驱动或状态机复杂的项目
- 使用 Enhanced Input 与玩法标签,希望输入规则可复用的团队
- 需要连击、恢复、互动、技能或界面输入限制与输入缓冲的玩法
- 使用状态树管理状态,并希望输入控制随状态生命周期自动进入和退出的项目
- 希望在蓝图与 C++ 中扩展输入校验和响应的团队
核心组件必须挂在 Pawn 上;本地玩家 Enhanced Input 也在该 Pawn 上绑定。不支持 PlayerController 或 AIController 持有。GIPS 管理本地输入权限与缓冲,不提供原始硬件输入的网络同步协议;多人项目需要同步和校验输入产生的项目级动作。
✨ 减少复制粘贴
使用前:需反复复制粘贴相同的输入代码

使用后:通过 GIPS 统一管理输入逻辑,无需重复代码

强迫症万岁!
✨ 简化逻辑判定
在开发战斗系统时,GIPS 让你无需编写大量 If/Else 语句来判断复杂逻辑(如普通攻击是否可跳跃,或地面/空中攻击切换)。
你可以将一部分的复杂性迁移到输入层面,以降低后续系统的复杂性。
🛠️示例
使用 GIPS 配置输入逻辑:

越是复杂困难的任务,使用通用输入系统,效果就越显著。
技术详情
代码模块(Code Modules):
GenericInputSystem(Runtime)
依赖插件(Plugin Dependencies):
EnhancedInputStateTree
Blueprint 数量(Number of Blueprints): 随配套项目提供
C++ 类数量(Number of C++ Classes): 8+
网络复制(Network Replicated): 否
开发支持平台(Supported Development Platforms): Win64、Mac、Android、Linux
支持的目标构建平台(Supported Target Build Platforms): Win64、Mac、Android、Linux
配套项目(Companion Project): 购买后通过购买验证提供
重要说明/附加说明(Important/Additional Notes): 查看我的产品整体设计
