使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

该文章仅作为本人工作过程中的开发笔记,难免有不严谨不深刻的地方,适合刚入门Unity+HTC VIVE新手制作VR菜单时作为参考,望大神勿喷。

在使用Unity+HTC VIVE制作VR游戏或者严肃游戏时,时常会需要到菜单的制作(这里指的是接受手柄射线的菜单,如下所示)

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

制作此类菜单的步骤如下:

一、在Unity项目中导入VRTK插件,可以直接通过Unity的商城Asset Store搜索得到,且是免费的

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

二、为手柄及UI组件添加相应的射线脚本,左下图为组件目录结构,右下图为手柄射线相关脚本的实例(限于篇幅,并且本文重点不是介绍VRTK的使用,此处不做展开),VR模式下Canvas的Render Mode属性必须选择world space

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单                 使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

三、创建材质球如下,并为除Canvas外的所有UI组件添加该材质(其目的是为了改变UI组件的渲染顺序,使UI组件不被场景中的其他物体所遮挡)

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

Canvas添加VRTK提供的脚本,接受射线

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单

四、菜单应该支持显示和隐藏,因此我们在手柄的菜单键点击事件中添加菜单的显示和隐藏事件

使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单


此处应该注意代码使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单,当我们点击按钮时,我们认为是点击了一下,但实际上由于按钮的抖动,该按钮实际上被点击了多次,所以我们这里应该是用标志位menuKeyDown,并加上如上函数,消除按钮抖动事件。