简单粗暴,一个插件让你无代码实现VR交互
开发环境steamVR2.0+unity2017.1.0f1
steamVR2.0下载地址
一、总体目标
Unity+HTC VIVE 开发:
1、场景漫游+摄像机自动漫游
2、启动动画+滚动条
3、对墙壁、地板进行纹理修改
4、对场景中的某个家具进行旋转、移动、删除、添加功能
5、灯的开启和关闭
6、电视的开启和关闭
7、音乐的开启和关闭
8、实时获取当前系统时间
9、动态天空盒
10、有样板菜单,进入另一个场景,能够整体查看,样板房可以旋转,放大缩小和复位,高亮显示客厅
1、场景的主体模型如下图所示
实现过程
项目的前期准备工作
1、新建一个项目
2、将steamVR插件导入导目中
3、将项目所需要的模型以及材质导入场景中去
4.2 项目各功能详细介绍:
(1)在场景中加入steamVR的插件如下图所示:
SteamVR中的player预制体自身带有碰撞体和移动脚本等还有手柄、头盔识别等插件。
(2)场景漫游
给地板复制一层,略高于原来的地板,在Hierachy面板拖入Teleporting组件,地板加入
即可实现场景漫游
(3)摄像机自动漫游,给另一个Camera自定义一个动画路径
需要自动漫游的时候,点击按钮,开启camrea的自动漫游,隐藏Player下的camera,漫游结束再开启
核心代码:
(4)启动动画
在Player setting设置一下:
运行打包好的exe文件,开始就是启动动画
进度条的实现,主要是利用异步加载多线程方法,
新建场景如下图设置:
核心代码:
实现:
(5)对墙壁.地板进行纹理修改
利用Button点击事件,button添加UI Element和box collider组件,如上图设置即可
对墙纹理修改:
对地板纹理修改:
(6)电视和音乐的开关
分别给电视和音响添加Video Player和Audio Source,然后添加视频和音乐
默认不勾选,然后按钮开关控制电视和音乐的开启和关闭
当手柄触碰开关按钮即可控制电视和音乐的开启和关闭。
(7)灯的开关
关灯
开灯
(8)1.可以控制物体的移动,比如拿起遥控器,在遥控器那里添加组件
2.花瓶的旋转
写一个脚本控制旋转,核心代码如下:
把脚本挂在物体上,用按钮控制,勾选事件即可
3.删除功能
删除场景中的花瓶,核心代码:
添加功能
可以生成一本书,核心代码:
(8)动态天空盒的功能
可以实现让天空盒转动,具有比较真实的效果,写脚本实现,核心代码:
(9)实时获取当前系统时间
核心代码:
(10)样板菜单,进入另一个场景,整体查看
1.有旋转功能,样板房添加之前写好的Rotate脚本,可控制x,y,z轴转动
2.有放大缩小功能,位置复位功能,核心代码:
3.客厅高亮功能,核心代码
通过这次虚拟现实开发技术的实习,学习了很多新知识,知道怎么实时获取当前系统的时间,利用脚本可以实现天空盒的动态运行,特别掌握了如何异步加载进度条切换场景.最大的收获是加强了我的VR开发技能 ,对SteamVR插件又有了一些很深的认识。当然实现这个系统也遇到了不少的问题,如果用Throwable组件拾取物体的话,物体必须是非静态的才可以,在写判断动画播放方法的时间,写在了update函数外,后面问了老师才知道,判断动画播放结束必须是要放在update函数里的,这样它才能不断的监听动画播放结束。
这样的VR交互简直不要太简单了。