基于unity+HTC VIVE的室内漫游交互(教你如何“无代码”VR交互)

简单粗暴,一个插件让你无代码实现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交互简直不要太简单了。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周的Unity小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值