之前的文章有介绍使用SteamVR_LaserPointer来直接实现UGUI交互,相信各位同学也会发现这种方式比较难受,还是摆脱不了UI要挂载Collider,不是完整的UGUI交互系统。
注意:Scripts当中使用了define宏来避免没有导入SteamVR的报错,如果想要正常挂在脚本,需要在Unity中添加STEAMVR宏,或导入SteamVR后删除Scripts当中STEAMVR宏!
一、下载资源并导入Unity中
二、前期准备
新建场景,删除默认相机,将Player拖拽进入场景内
新建Plane,修改为Floor,上一个黑色材质球,Transform信息如下:
三、添加UI及组件
结构如下,添加画布、面板、按钮、Slider、ScrollView
Canvas/画布信息
其他UI组件按照正常UGUI添加即可,此方式GUI不需要添加碰撞器和其他不必要的组件。
四、挂载UI交互组件
在前面下载的资源中,包含四个脚本
1、RightHand上挂载Kvr_UIPointer组件
2、InputModule上挂载Kvr_InputModule组件
3、Canvas/画布上挂载Kvr_UICanvas组件
以上操作后,开始游戏,即可体验完整的UGUI系统
此系统与SteamVR的射线系统都为独立系统,原有的射线系统保留,方便SteamVR版本更新和后续射线与实体交互等功能实现,所以该系统只是在SteamVR原有的基础上,增加了UGUI交互系统,只需要挂载几个组件,即可实现整套UGUI交互。