问题
我们传统的输入方式,是通过编辑器设置输入操作映射,然后BindAction和BindAxis绑定
这边插播一条增强输入知识点,参考知乎大佬文章
和增强输入的VR模板教学:如何使用VR模板在UE5中使用增强输入系统_哔哩哔哩_bilibili
实践操作
我们进入VR模板,通过一个jump案例,了解使用规则,首先新建一个Input Action,命名IA_JUMP。
然后我们在IMC_Default新建映射Jump,设置输入按键时Oculus的Touch A按键
我们在VR_Pawn蓝图里发现设置Mapping Context的方法,Add Mapping Context包含了Priority设置了输入的优先级别,可以在适当时候屏蔽某些输入,例如打开背包是按键E,但是同时Pawn可以和门有互动动作,也是按键E,这时候设置优先级(0是最高优先级),进行输入屏蔽,确保我们打开背包时,开不了门。
InputAction方法包含了下面这些状态,具体可以参考虚幻文档虚幻引擎中的增强输入 | 虚幻引擎5.1文档 (unrealengine.com)
触发状态
触发状态(Trigger State) 表示动作的当前状态,例如 已开始(Started) 、 进行中(Ongoing) 、 已触发(Triggered) 、 已完成(Completed) 和 已取消(Canceled) 。通常,你将使用"已触发"状态。你可以绑定到C++和蓝图中的特定状态。
-
已触发(Triggered): 动作已触发。这意味着它完成了所有触发器要求的求值。例如,"按下并松开"触发器会在用户松开按键时发送。
-
已开始(Started): 发生了开始触发器求值的某个事件。例如,"双击"触发器的第一次按下将调用"已开始"状态一次。
-
进行中(Ongoing): 触发器仍在进行处理。例如,当用户按下按钮时,在达到指定持续时间之前,"按住"动作处于进行中状态。根据触发器,此事件将在收到输入值之后对动作求值时触发每次更新。
-
已完成(Completed): 触发器求值过程已完成。
-
已取消(Canceled): 触发已取消。例如,"按住"动作还没触发之前,用户就松开了按钮。
在VrPawn蓝图中中进行蓝图连连看,输出一个jump started的bebug文本
我们需要确保IMC_Default在PMI_VRTemplate被设置,下图所示,右侧一排数字表示默认的优先级顺序。
倒数第二步,我们需要确保项目设置中,这些参数正确设置。
最后成功输出文本