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,不认具体按键。
