本例基于UE5.4

1. 创建或添加VR(虚拟现实)项目

2. 创建用户界面

1). 创建用户控件

创建用户控件,起名为WD_MainMenu

2). 在用户界面上添加控件

根据业务需要,添加背景图和按钮,并对按钮添加点击事件

比如添加退出事件

3. 在关卡中放置用户界面

1). 创建基于Actor的蓝图类

在内容浏览器右键,新建蓝图类,并创建基于Actor的蓝图类M_Menu

2). 在蓝图类中创建Widget

双击打开蓝图类,并添加Widget

3). widget中选择控件类

选中Widget,在详细面板中设置控件类为用户控件WD_MainMenu

调整大小,并将碰撞预设改为Custom

4). 添加蓝图

将蓝图类M_Menu拖入到关卡中,设置好位置旋转和缩放

注意:默认拖入后,需要在Z轴旋转180度。

4. 创建手柄交互

1). 在VRPawn添加控件交互子类

在内容浏览器中,打开进入到VRTemplate->Blueprints下,双击打开VRPawn视口

分别在MotionControllerLeftAim和MotionControllerRightAim下创建控件交互子类

2). 设置控件交互子类参数

分别选中刚才创建控件交互子类,在细节面板进行设置:

其中:
交互下的:
Pointer Index是pointer的索引号,左右手分别设置0和1
Trace Channel 改为 WorldDynamic
Interaction Distance 手柄光束的距离
调试下的Show Debug 是否显示手柄光束
高级下的Debug Line Thickness 是手柄光束的粗度
Debug Color 是手柄光束的颜色,可以设置一手绿色一手为红色

运行如下图:

但是由于未添加轴映射,暂不能响应用户控件事件。

5. 创建手柄映射

1). 创建输入操作

在内容浏览器中,进入VRTemplate->Input->Actions,添加输入操作

创建IA_Left和IA_Right:

2). 添加映射键轴

进入到上一层VRTemplate->Input,双击打开IMC_Default

分别在映射,添加IA_Left和IA_Right

分别在映射IA_Left和IA_Right下,根据手柄型号添加扳机键轴

3). 添加映射事件

进入到VRPawn的事件图表中,右键创建EnhancedInputAction IA_Left和EnhancedInputAction IA_Right事件
并将与创建的控件交互子类进行鼠标模拟

左手与右手相同

以上,运行后就可以点击手柄并触发菜单上的事件