迁移决策与兼容性

旧系统还会留着吗

UE5 里旧输入系统在一段时间内仍可启用(兼容),但 Epic 明确推荐新项目使用 Enhanced Input。UE5.8 起旧输入系统被标记为弃用(deprecated):新项目默认 Enhanced Input;旧项目每升一次引擎版本都会看到更多弃用警告。这不是"可以无限期推迟"的事。

迁移成本其实不高

工作量 内容 说明
低 把"项目设置 Input 表"改造成 IA/IMC 资产 一次性体力活,可写小工具半自动
中 蓝图里的输入事件改为 Enhanced 版节点 逐张蓝图过,容易漏(列清单)
中 C++ 的 SetupInputComponent 改为 EnhancedInputComponent 绑定 集中在少数几个类

迁移后的收益: - 按键配置是资产(策划批量改、存档重映射); - 上下文切换一行代码; - 死区/曲线/按住/双击全部内置。

迁移的推荐姿势

  1. 试点:最高频 3 个动作(移动、跳跃、开火)迁过去跑通,建立"新系统可用"的信心;
  2. 清单:一张表列出每个旧 Action → 对应 IA 资产、IMC 归属、按键;
  3. 分模块迁移:每迁完一个模块做"输入回归"(按键清单逐条过);
  4. 收尾:项目设置旧 Input 表清空,移除弃用警告。

一个具体的迁移对照表(蓝图的差异)

旧蓝图节点 新蓝图节点
InputAction Jump(事件) EnhancedInputAction Jump(事件,需选 IA 资产)
InputAxis MoveForward EnhancedInputAction Move(Axis2D,Started/Triggered/Completed 都有)
InputAxis LookUp(视角) EnhancedInputAction Look(Axis2D,每帧值)

最大心智差异:旧系统的"按下/松开/持续"是三种节点分开放;新系统是同一个动作事件的三个阶段(Started / Triggered / Ongoing / Completed / Canceled),放在一起看流程更清楚。

一个决策建议

如果项目还停留在 UE4 输入、且计划继续开发 6 个月以上——现在迁移。迁移成本约 2~5 人天,而旧系统每次引擎升级都会贡献新的弃用警告和"上下文手工开关"的隐性 bug。

本章小结

  • UE5.8 起旧输入弃用,新项目必须 Enhanced Input。
  • 迁移三处:资产化、蓝图节点、C++ 绑定;推荐"试点 → 清单 → 分模块"路径。
  • 蓝图心智差异:同一个动作的多个阶段(Started/Triggered/Completed)集中在一个事件。