虚幻引擎 Get Input Axis Value 节点

在虚幻引擎5(UE5)中,Get Input Axis Value 节点主要用于传统输入系统(Legacy Input System),用于获取一个轴映射(Axis Mapping) 的当前值

不过,从UE5开始,官方更推荐使用增强输入系统(Enhanced Input) 。后者没有直接的“Get Input Axis Value”节点,而是通过输入动作(Input Action) 和输入映射上下文(Input Mapping Context) 来实现更灵活的控制

下面我为你分别介绍这两种方案的具体操作步骤。


方案一:传统输入系统(使用 Get Input Axis Value 节点)

这是最直接、最经典的方法,适合快速原型开发或学习。

步骤 1:设置轴映射(Axis Mappings)

  1. 打开 项目设置Edit > Project Settings)。

  2. 在左侧找到 引擎(Engine) > 输入(Input)

  3. 在 轴映射(Axis Mappings) 部分,点击右侧的 “+” 号添加新映射

  4. 按以下示例设置,实现WASD控制移动

    • MoveForward(前后移动):按下 W 键,缩放(Scale)为 1.0;按下 S 键,缩放为 -1.0

    • MoveRight(左右移动):按下 A 键,缩放为 -1.0;按下 D 键,缩放为 1.0

    • Turn(视角左右旋转):选择 Mouse X,缩放为 1.0

    • LookUp(视角上下旋转):选择 Mouse Y,缩放为 -1.0

步骤 2:创建并设置角色蓝图

  1. 在内容浏览器中右键,选择 蓝图类(Blueprint Class),父类选择 角色(Character),命名为 BP_MyCharacter

  2. 双击打开该蓝图,在 组件(Components) 面板添加 弹簧臂(SpringArm) 和 摄像机(Camera) 组件,并将摄像机附在弹簧臂下

  3. 在弹簧臂的细节面板中,勾选 使用Pawn控制旋转(Use Pawn Control Rotation)

步骤 3:在事件图表中使用 Get Input Axis Value

  1. 在 BP_MyCharacter 中打开 事件图表(Event Graph)

  2. 在图表中右键,搜索并放置 Get Input Axis Value 节点

  3. 在节点的 Input Axis Name 下拉菜单中,选择你在步骤1中创建的轴名称,如 MoveForward

  4. 重复以上操作,添加获取 MoveRight 的节点。

步骤 4:连接逻辑实现移动

  1. 从事件图表中拖出 Event Tick 节点(或者使用 Enhanced Input 的 Action Event 节点,但传统方案常用Tick)。

  2. 拖出 Add Movement Input 节点

    • 将 Get Input Axis Value (MoveForward) 的 Return Value 连接到 Add Movement Input 的 Scale Value

    • 将 Get Actor Forward Vector 连接到 Add Movement Input 的 World Direction

  3. 用同样的方法,为 MoveRight 添加另一个 Add Movement Input 节点,方向使用 Get Actor Right Vector

  4. 编译并保存蓝图。

传统方案蓝图连线示意(简化):

注意:使用 Get Input Axis Value 节点时,通常需要结合 Event Tick 每帧调用,以获取持续的输入值。


方案二:增强输入系统(Enhanced Input)- UE5官方推荐

这是UE5的现代化输入处理方案,更加强大和灵活

步骤 1:创建输入动作(Input Actions)

  1. 在内容浏览器中右键,选择 输入(Input) > 输入动作(Input Action)

  2. 创建两个动作:

    • IA_Move:在细节面板中,将 值类型(Value Type) 设置为 Axis2D (Vector2D)

    • IA_Look:将 值类型(Value Type) 设置为 Axis2D (Vector2D)

步骤 2:创建输入映射上下文(Input Mapping Context)

  1. 在内容浏览器中右键,选择 输入(Input) > 输入映射上下文(Input Mapping Context),命名为 IMC_Default

  2. 双击打开 IMC_Default,在 映射(Mappings) 部分点击 “+” 添加映射

  3. 将 IA_Move 动作映射到 W/A/S/D 键。

  4. 将 IA_Look 动作映射到 鼠标XY(Mouse XY)

步骤 3:在角色蓝图中设置输入

  1. 打开你的角色蓝图(如 BP_MyCharacter),在 事件图表(Event Graph) 中。

  2. 在 事件开始运行(Event BeginPlay) 节点后,执行以下操作:

    • 获取 玩家控制器(Get Player Controller)

    • 从控制器获取 增强输入本地玩家子系统(Enhanced Input Local Player Subsystem)

    • 调用该子系统的 添加映射上下文(Add Mapping Context) 函数,将 IMC_Default 添加进去

步骤 4:使用输入动作事件

  • 移动:在图表中右键,搜索 IA_Move,选择 增强输入动作事件(Enhanced Input Action Event) 节点。将 动作值(Action Value) 直接连接到 Add Movement Input 节点的 Scale Value。由于其值类型是 Axis2D,它可以直接作为方向向量使用。

  • 视角:同样为 IA_Look 添加事件节点,将其 动作值(Action Value) 连接到 Add Controller Yaw Input(处理水平旋转)和 Add Controller Pitch Input(处理垂直旋转)节点。


两种方案对比与建议

特性 传统输入系统 (Get Input Axis Value) 增强输入系统 (Enhanced Input)
适用版本 UE4及UE5早期版本 UE5官方推荐 (UE5.0+)
配置方式 在项目设置的“轴映射”中集中配置 通过“输入动作”和“输入映射上下文”资产配置
灵活性 较低,难以处理复杂输入场景 ,支持输入触发、修饰器等高级功能
获取数值节点 Get Input Axis Value Get Enhanced Input Action Value (或直接使用Action Event)
调用方式 通常在 Event Tick 中每帧调用 通过事件驱动,更加高效

建议对于新项目,强烈建议直接学习和使用“增强输入系统”。它提供了更好的可扩展性和未来兼容性。而 Get Input Axis Value 节点更适合用于理解输入原理,或维护旧有项目


常见问题与注意事项

  • 传统方案中轴值无变化:请检查 项目设置 中的 轴映射(Axis Mappings) 名称是否与节点中下拉选择的名称完全一致

  • 增强方案中无反应:确认已在 BeginPlay 中通过 增强输入本地玩家子系统(Enhanced Input Local Player Subsystem) 成功 添加映射上下文(Add Mapping Context)

  • 输入被阻挡:注意 输入组件(Input Component) 的优先级。控制器(Controller)的输入组件会优先于Pawn处理输入Get Input Axis Value 节点有 bConsumeInput 属性,可以防止低优先级的Actor处理该输入

  • Get Input Axis Value vs Get Input Axis Key Value:前者通过你在项目设置中定义的轴映射名称(如 “MoveForward”)来获取值;后者则直接通过具体的按键(如 Key_W)来获取值Get Input Axis Value 更常用,因为它与你的输入映射配置解耦。

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容