虚幻引擎 Get Input Axis Value 输入

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

图片[1]_虚幻引擎 Get Input Axis Value 输入_虚幻引擎

从UE5开始,官方更推荐使用增强输入系统(Enhanced Input) 。通过输入动作(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 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容