Unity之OpenXR+XR Interaction Toolkit实现 UI交互

一.前言

在VR中我们经常会和一些3D的UI进行交互,今天我们就来说一下如何实现OpenXR+XRInteraction Toolkit和UI的交互。

二.准备工作

我们需要准备好Unity工程和环境配置
有了前文:Unity之OpenXR+XR Interaction Toolkit基本配置的介绍,我们就不在详细说明这些了,大家自行复习。

流程简述:
我们新建一个3D(URP)工程
然后通过PackageManager安装XR Interaction ToolKit插件。
配置好XR Interaction Toolkit的Preset
新建一个3D场景

准备工作完毕

三.创建画布

在这里插入图片描述
然后进行如下设置
1.修改RenderMode为World Space模式
2.修改Transform的Scale缩放为(0.002,0.002,0.002)
3.修改何时的坐标位置,如圆点(0.0.0)附近
4.添加XR组件Tracked Device Graphic Raycaster(可以和VR手柄交互)

在这里插入图片描述

四.添加XR Origin

通过菜单GameObject->XR->XR Origin(VR)创建VR操作对象。
查看LeftHand Controller和RightHand Controller是否配置正确。
在这里插入图片描述
设置手柄模型
在这里插入图片描述
模型的资源在XR Interaction Toolkit的Prefabs目录中
在这里插入图片描述

以上设置完毕,如果没有问题的话。
查看Hand Controller的另一个组件XR Ray Interactor射线交互器,确认Enable Interaction With UI GameObjects 选项是否勾选,这里必须勾选,才能通过射线和UI进行交互。
在这里插入图片描述

五.升级EventSystem

选择EventSystem游戏对象,我们会发现如下图所示:
原因不言而喻,就是我们原StandaloneInputModule适用于老UI,无法用于VR环境,需要升级使用XR的InputSystemUIInputModule。
升级之后就可以在编辑器环境下通过鼠标点击VR的UI,不需要使用手柄射线。如果不需要这个特性直接移除就好。
在这里插入图片描述
我们直接点击Replace Whith xxxx按钮即可。替换完毕后,如下图所示;
在这里插入图片描述

添加XR UI Input Module

接下来,添加VR手柄射线交互的InputModule模块,不添加的话,我们的手柄发射的射线无法控制UI,
注意它的属性Input System UIActions 上的配置是自动配置上去的,如果是空的,那么可能是我们的PresetManager没有配置成功。
在这里插入图片描述

好了,到此位置,我们就可以运行Demo试一下了。

扫描二维码关注公众号,回复: 15016354 查看本文章

猜你喜欢

转载自blog.csdn.net/qq563129582/article/details/130355661