在虚幻引擎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)
-
打开 项目设置(
Edit>Project Settings)。 -
在左侧找到 引擎(Engine) > 输入(Input)。
-
在 轴映射(Axis Mappings) 部分,点击右侧的 “+” 号添加新映射。
-
按以下示例设置,实现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:创建并设置角色蓝图
-
在内容浏览器中右键,选择 蓝图类(Blueprint Class),父类选择 角色(Character),命名为
BP_MyCharacter。 -
双击打开该蓝图,在 组件(Components) 面板添加 弹簧臂(SpringArm) 和 摄像机(Camera) 组件,并将摄像机附在弹簧臂下。
-
在弹簧臂的细节面板中,勾选 使用Pawn控制旋转(Use Pawn Control Rotation)。
步骤 3:在事件图表中使用 Get Input Axis Value
-
在
BP_MyCharacter中打开 事件图表(Event Graph)。 -
在图表中右键,搜索并放置
Get Input Axis Value节点。 -
在节点的
Input Axis Name下拉菜单中,选择你在步骤1中创建的轴名称,如MoveForward。 -
重复以上操作,添加获取
MoveRight的节点。
步骤 4:连接逻辑实现移动
-
从事件图表中拖出
Event Tick节点(或者使用Enhanced Input的Action Event节点,但传统方案常用Tick)。 -
拖出
Add Movement Input节点。-
将
Get Input Axis Value (MoveForward)的Return Value连接到Add Movement Input的Scale Value。 -
将
Get Actor Forward Vector连接到Add Movement Input的World Direction。
-
-
用同样的方法,为
MoveRight添加另一个Add Movement Input节点,方向使用Get Actor Right Vector。 -
编译并保存蓝图。
传统方案蓝图连线示意(简化):
注意:使用
Get Input Axis Value节点时,通常需要结合Event Tick每帧调用,以获取持续的输入值。
方案二:增强输入系统(Enhanced Input)- UE5官方推荐
这是UE5的现代化输入处理方案,更加强大和灵活。
步骤 1:创建输入动作(Input Actions)
-
在内容浏览器中右键,选择 输入(Input) > 输入动作(Input Action)。
-
创建两个动作:
-
IA_Move:在细节面板中,将 值类型(Value Type) 设置为 Axis2D (Vector2D)。 -
IA_Look:将 值类型(Value Type) 设置为 Axis2D (Vector2D)。
-
步骤 2:创建输入映射上下文(Input Mapping Context)
-
在内容浏览器中右键,选择 输入(Input) > 输入映射上下文(Input Mapping Context),命名为
IMC_Default。 -
双击打开
IMC_Default,在 映射(Mappings) 部分点击 “+” 添加映射。 -
将
IA_Move动作映射到 W/A/S/D 键。 -
将
IA_Look动作映射到 鼠标XY(Mouse XY)。
步骤 3:在角色蓝图中设置输入
-
打开你的角色蓝图(如
BP_MyCharacter),在 事件图表(Event Graph) 中。 -
在 事件开始运行(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 ValuevsGet Input Axis Key Value:前者通过你在项目设置中定义的轴映射名称(如 “MoveForward”)来获取值;后者则直接通过具体的按键(如Key_W)来获取值。Get Input Axis Value更常用,因为它与你的输入映射配置解耦。
感谢您的来访,获取更多精彩文章请收藏本站。

![图片[1]-虚幻引擎 Get Input Axis Value 节点-虚幻引擎](https://test.xuhuanyinqing.com/wp-content/uploads/2026/06/蓝图节点连接示意图2-scaled.png)






暂无评论内容