Trigger 的时机语义

Trigger 决定"按键之后什么时候算真的触发"。

内置触发器全表

Trigger 何时返回 Triggered 备注
Pressed 按下瞬间 一次性
Released 松开瞬间 一次性
Down 按住期间(每帧) 类似旧轴
Hold 按住超过设定时长 可配时长,有 Progress
Pulse 按住周期性触发 可配周期
Double Tap 两次按下间隔 < 阈值 可配阈值
Tap 快速点按(按下-松开 < 时长) 区分长按
Chord 指定的多个键同时按 组合键
Combo(自定义常见) 序列按键 引擎无内置,需自定义或插件

Hold 的进阶用法

  • Hold Time:0.5s(可配);
  • Progress 输出:0~1,UI 进度条直接绑;
  • Immediate Trigger 配合:可以配成"按下先走(短按攻击)、按住超过 0.5s 变蓄力"。

双语义按键的两种做法

需求:"单击右键瞄准,双击右键翻滚"。

做法 A(两行映射):

IA_Aim ← RightMouseButton, Trigger: Pressed + Released
IA_Dodge ← RightMouseButton, Trigger: Double Tap(0.3s)

注意:双击时单击也会触发一次——需要配合"Tap" 触发器 + 延迟判定,工程上常用做法 B。

做法 B(一个动作 + 逻辑判断):IA_Aim 用 Tap Trigger(快速点按才触发,按住不触发),翻滚用 Double Tap。两者配合可以做到"双击只翻滚不瞄准",因为 Double Tap 的第二次按下落在 Tap 的"等待"窗口里。

这类微妙的手感逻辑是 Trigger 系统最大的价值:在引擎层而非蓝图层处理时序。

本章小结

  • Trigger 全表:Pressed/Released/Down/Hold/Pulse/DoubleTap/Tap/Chord。
  • Hold 的 Progress 可直接驱动蓄力 UI;Tap + DoubleTap 组合实现"单击/双击"分流。
  • 时序逻辑放引擎层处理,是 Trigger 体系的核心价值。