Enhanced Input 的四个核心概念

概念 缩写 一句话
Input Action IA 一个"动作":开火、跳跃、移动。它只定义"动作是什么类型"(布尔/轴向/三维),不关心哪个键
Input Mapping Context IMC 一组"按键 → 动作"的映射表,可整体启用/停用
Input Modifier 修饰器 对输入值做加工:死区、曲线、缩放、取反
Input Trigger 触发器 决定"什么时机算触发":按下、按住 1 秒、连按两次

数据流

物理输入(键盘/手柄/触屏)
   ↓
Input Mapping Context(按键 → 动作 的映射)
   ↓ 修饰器加工值(死区/缩放/曲线)
   ↓ 触发器判断时机(按下/双击/按住)
Input Action(动作触发,输出值)
   ↓
游戏逻辑(C++ 绑定的委托 / 蓝图事件)

一个直观例子

"按住 Shift 加速跑": - IA_Sprint(动作,布尔类型:跑/不跑); - IMC_Default 里映射 Left Shift → IA_Sprint; - Trigger: Pressed(按下)+ Released(松开),或 Hold(按住持续触发); - Modifier: 无(布尔动作不需要模拟量加工)。

游戏里只关心 IA_Sprint 触发与否——"按的是 Shift 还是手柄哪个键"由 IMC 决定,逻辑代码看不见。这就是解耦的意义。

与 GAS 的呼应

GAS 用"标签"解耦状态,Enhanced Input 用"Input Action 资产"解耦输入。两者都是 Epic "把变化点做成资产"的设计哲学。第 1 本说"把变化频繁的东西放蓝图/资产",这里是同一思想在输入层的落地。

本章小结

  • 四概念:IA(动作)、IMC(映射表)、Modifier(值加工)、Trigger(时机判断)。
  • 数据流:物理输入 → IMC → Modifier → Trigger → IA → 游戏逻辑。
  • 核心价值是解耦:逻辑代码只认 IA,不认具体按键。