使用Unity+HTC VIVE做VR时如何创建用户体验较强的菜单
2017-12-20 15:06
901 查看
该文章仅作为本人工作过程中的开发笔记,难免有不严谨不深刻的地方,适合刚入门Unity+HTC VIVE新手制作VR菜单时作为参考,望大神勿喷。
在使用Unity+HTC VIVE制作VR游戏或者严肃游戏时,时常会需要到菜单的制作(这里指的是接受手柄射线的菜单,如下所示)
制作此类菜单的步骤如下:
一、在Unity项目中导入VRTK插件,可以直接通过Unity的商城Asset Store搜索得到,且是免费的
二、为手柄及UI组件添加相应的射线脚本,左下图为组件目录结构,右下图为手柄射线相关脚本的实例(限于篇幅,并且本文重点不是介绍VRTK的使用,此处不做展开),VR模式下Canvas的Render Mode属性必须选择world space
三、创建材质球如下,并为除Canvas外的所有UI组件添加该材质(其目的是为了改变UI组件的渲染顺序,使UI组件不被场景中的其他物体所遮挡)
Canvas添加VRTK提供的脚本,接受射线
四、菜单应该支持显示和隐藏,因此我们在手柄的菜单键点击事件中添加菜单的显示和隐藏事件
此处应该注意代码
,当我们点击按钮时,我们认为是点击了一下,但实际上由于按钮的抖动,该按钮实际上被点击了多次,所以我们这里应该是用标志位menuKeyDown,并加上如上函数,消除按钮抖动事件。
在使用Unity+HTC VIVE制作VR游戏或者严肃游戏时,时常会需要到菜单的制作(这里指的是接受手柄射线的菜单,如下所示)
制作此类菜单的步骤如下:
一、在Unity项目中导入VRTK插件,可以直接通过Unity的商城Asset Store搜索得到,且是免费的
二、为手柄及UI组件添加相应的射线脚本,左下图为组件目录结构,右下图为手柄射线相关脚本的实例(限于篇幅,并且本文重点不是介绍VRTK的使用,此处不做展开),VR模式下Canvas的Render Mode属性必须选择world space
三、创建材质球如下,并为除Canvas外的所有UI组件添加该材质(其目的是为了改变UI组件的渲染顺序,使UI组件不被场景中的其他物体所遮挡)
Canvas添加VRTK提供的脚本,接受射线
四、菜单应该支持显示和隐藏,因此我们在手柄的菜单键点击事件中添加菜单的显示和隐藏事件
此处应该注意代码
,当我们点击按钮时,我们认为是点击了一下,但实际上由于按钮的抖动,该按钮实际上被点击了多次,所以我们这里应该是用标志位menuKeyDown,并加上如上函数,消除按钮抖动事件。
相关文章推荐
- (CEGUI)如何创建控件 ------菜单MenuBar的使用
- Linux 上如何创建新的用户,并让其在首次登陆后修改密码,并限制其允许使用的磁盘空间
- 使用Jquery+CSS如何创建流动导航菜单-Fluid Navigation
- [原译]如何创建WPF用户控件&在WPF项目中使用
- 如何创建自适应系统来增强用户体验?
- [原] XAF 如何启用ListView Top N records 提升用户使用体验
- 如何使用C#与XML创建动态分层菜单
- 使用jQuery+CSS如何创建流动导航菜单-Fluid Navigation
- 如何使用CMenu类创建菜单
- 如何恢复一个非用户sa创建的数据库,且使用原用户创建者进行访问
- matlab如何使用、显示、修改和如何创建用户自己的颜色映象
- 如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)
- 【CDC翻客】如何创建自适应系统来增强用户体验
- 使用Jquery+CSS如何创建流动导航菜单-Fluid Navigation
- 如何:使用 Windows 窗体 TextBox 控件创建密码文本框 .NET Framework 2.0 其他版本 密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符。 创
- 如何使用TrackPopupMenu创建菜单
- c#如何使用webservice、存储过程及存储过程的创建(简单模仿类似QQ统计用户在线时间为例)
- 如何以DLL文件形式创建和使用用户控件
- 使用Jquery+CSS如何创建流动导航菜单-Fluid Navigation 推荐