初探CardBoard:(1)在Unity中实现简单VR场景
初探CardBoard:(1)在Unity中实现简单VR场景
- 为何使用CardBoard
- 价格低廉
- 兼容性
- 前期准备
- 开始工程
- 一、简单的环境布置
- 二、导入SDK
- 三、SDK基础组件说明
- 四、将之前的场景布置为VR场景
- 五、在unity中测试
- 六、打包为apk传到手机
- 一些问题与解决
- 打包时遇到的问题
为何使用CardBoard
现在的VR越来越流行,各种设备也是百花齐放。然而,对于研究VR刚刚起步的小白来说,昂贵的设备(例如HTC)并不一定是最佳选择。那么Google 的CardBoard就映入了我眼前。
价格低廉
使用它仅仅需要以下设备:
- 一个光学盒子 ,淘宝上只需要不到200块钱,只是注意大小要能够放下你的手机;
- 一个Android手机,这是唯一的花费点,一个好的手机总可以使你的体验更加良好,最次也得Android5.0以上的手机;
兼容性
Google 的SDK可以完美导入到unity中。
前期准备
- 最新版的CardBoardSDK,可以从https://developers.google.com/vr下载,由于谷歌被禁用,也可以从以下地址下载:https://download.csdn.net/download/qq_21854397/10806697。
- Unity5.1以上,unity从这个版本开始支持VR开发。并且,请配置好Unity Android的开发环境,网上很多教材,就不再赘述。
开始工程
一、简单的环境布置
为了测试方便,我们为场景添加几个简单的物体。
- 添加地板:添加一个cube,位置归零,大小如图设置:
为其创建一个蓝色的Material,可以使地板呈现黄色 - 在地板上放置物体:我在这里加了一个cube,一样给他一个别的颜色的Materal
- 建立游戏角色:在Hierarchy面板右键–>CreatEmpty,改名为Player,将其高度(Y)设置为成人高度(1.6-2)。将MainCamera放置为Player的子物体。ManCamera的位置归零。
- 场景调整:调整Player的X、Z位置,使相机可以看到cube,最终在Game视图中与此图类似
- 切换平台:切换到Android平台(新版Cardboard SDK 必须在Android 或者 Ios 平台开发测试)。并在Player Settings中–>XRSetting–>
勾选VR支持并且选择Cardboard开发。
至此,我们前期的场景已经布置完毕。
二、导入SDK
将下载的最新的CardBoard SDK 包导入unity。
三、SDK基础组件说明
- GvrEditorEmulator 预制体:位于GoogleVR–>Prefab下。功能是可以在unity测试中控制相机转动,然而,打包后手机陀螺仪并不受它控制,所以打包apk有没有它无所谓,测试有他比较方便。
- GvrEventSystem 预制体:位于GoogleVR–>Prefab–>EventSystem下,功能是处理VR中的交互事件,类似于做UI时会增加EventSystem.
- GvrReticlePointer 预制体:位于GoogleVR–>Prefab–>CardBoard下,功能是为相机添加一个瞄准星。
- GvrPointerPhysicsRaycaster.cs 脚本 :位于GoogleVR–>Scripts–>EventSystem下,功能是可以为相机发射一条射线,配合GvrReticlePointer,可以与瞄准的物体触发事件。
一个基本功能的VR场景暂时只会用到SDK中的这几个预制体与脚本。
四、将之前的场景布置为VR场景
- 为MainCamera添加射线:将*GvrPointerPhysicsRaycaster.cs 脚本拖到MainCamera上。
- 为MainCamera添加瞄准器:将GvrReticlePointer 预制体添加到camara下。
为了观察方便,我将瞄准器材质(Material)换为红色:
- 为Cube物体添加Event Trigger:这样,cube可以检测到相机射线(预制体发出的)与cube的碰撞,从而做出反应。
- 将GvrEventSystem 预制体添加到Hierarchy面板:用于检测与响应碰撞。
- 将GvrEditorEmulator 预制体添加到Hierarchy面板:用来在测试中使鼠标可以控制角度。
五、在unity中测试
运行项目,使用Alt+左键 或者Ctrl+左键可以控制角度。注意观察准星的变化。
- 准星不在cube上:
- 将准星瞄准cube:
注意:在测试中发现,场景不是左右画面。这是因为Google在新出的SDK中取消了GvrViewerMain这个预制体,在老的版本,GvrViewerMain预制体用来体现左右VR模式。在新的SDK中,不再支持左右分画面,只有打包成为apk在手机上才能看到左右VR模式的画面。
六、打包为apk传到手机
记得选择Android API版本,一定要大于5.1才可以支持VR模式。
一些问题与解决
打包时遇到的问题
当你打包时遇到一些奇奇怪怪的问题时,可以尝试提高Android API Level,这有可能是由于Google的SDK对低版本的平台支持不够好造成的。
初探CardBoard:(1)在Unity中实现简单VR场景相关推荐
- 在Unity中实现简单的动画转场
在Unity中实现简单的动画转场 1 思路 1.1 原教程的思路 1.2 我的思路 2 制作转场动画 3 代码 3.1 Transition 3.2 SceneLoader 3.3 测试 4 成品 看 ...
- 【Unity-学习-013】EasyAR4.0稀疏空间地图 在Unity中编辑扫描的场景
之前遇到一个实验性的项目,用空间地图做场景识别,然后和游客互动拍照的需求.第一感觉就想到了 EasyAR4.0主推的空间地图功能.对于EasyAR的详细信息,请直接移步官网.那里有详细的介绍和简单的入 ...
- Protobuf(Protocol Buffer)在Unity中的简单应用
一.Protobuf的概念 高效轻便的数据存储格式(序列化和反序列化). 与平台和语言无关. 在网络通信和数据存储上应用广泛. 二.Protobuf的工作流 环境安装 使用Visual Studio2 ...
- Unity中的AI算法和实现2-有限状态机FSM(上)
本文分享Unity中的AI算法和实现2-有限状态机FSM(上) 在上一篇文章中, 我们基于Waypoint构建了一个最简单的AI怪物, 这个怪物可以在几个点之间巡逻. 本篇文章会在此基础之上, 添加怪 ...
- Photon在unity中的使用
ps:期末老师要求的一篇3000字的玩具级别论文,基本是官网和api手册原本就有的.基本我就是个搬运工,不知道有什么用,就先扔上来了.用的是writage,让word转为markdown,可能会出现一 ...
- unity做一个小游戏(适合零基础或者巩固加深unity中的工具类的用法)
今天跟着官方unity做了一个小游戏.巩固一下之前学习的unity的知识.注意unity的版本要在2018.3以上 大概游戏是这样子的如图:人物只能控制左右移动,空格发射饼干,动物从屏幕上方随机出现在 ...
- Unity中Skinned Mesh Renderer Blend Shapes小试
第一个应用:如何使用网格渲染器Blend Shapes Unity制作木棍剥皮 1. Intro 2.Modeling (Blender) 打开Blender 软件 调整视角 然后快捷键: Shift ...
- 一种城市道路网络的随机生成方式(Unity中可视化)
一种城市道路网络的随机生成方式(Unity中可视化) 1. 说在开头 2. 有限元网格划分 2.1. 什么是有限元 2.2. 前沿推进法/波前推进法(Advancing Front Technique ...
- 【VR开发】Unity中VR开发的基本设置-如何设置Player视角
[背景] 上一篇博文,我们通过导入需要的插件完成了Unity中VR开发的环境准备,接下来就需要在项目中真正着手布局VR,首先就是作为玩家的视角如何导入. [设置方法] 在Hierarchy中新建一个空 ...
最新文章
- cxgrid动态创建列
- 关于ElasticSearch性能调优几件必须知道的事
- 不同服务器数据库表连接查询修改,如何连接多个数据库,mysql中的服务器和查询两个表中的对方?...
- IIS7开启gZip动态压缩
- 基于LVS对LAMP做负载均衡集群
- com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格
- 默认网关出现乱码_SpringCloudZuul服务网关
- static、const、static const分析
- 2018年美赛E题M奖论文心得分享
- KMO检验和Bartlett球形检验
- javascript键盘事件
- IBM副总裁胡世忠:数据是新的自然资源
- php ci框架后台管理,ci: 羽翼后台管理平台是一个简单的博客系统,后端基于CodeIgniter,前端基于Semantic UI 2.2.10...
- Android RemoteViews----RemoteViews应用
- 面试之路(6)-BAT面试之操作系统内存详解
- 百度2023届暑期实习生面经-产品运营岗
- 【LeetCode 5-中等】最长回文子串(高清截图)
- 企业职工工资在线管理信息系统【生产实习课设报告】
- 数仓中应该出现的所有表格
- linux tty终端 录屏,在Linux上录制终端的操作
热门文章
- 天天生鲜项目 python邮箱_python3 之 天天生鲜 项目(初学者)1
- 酒旅板块复苏,亚朵继续上市梦,距离“新住宿经济第一股“还有多远?
- 2018最新云知梦Laravel5.4电商实战项目VIP实战
- 斯坦福sr860锁相放大器原理介绍
- 这是一个通过c语言来把NX10.0画的直线等关键数据提取出来,可以通过电脑端显示,并可以通过CIMCO Edit8来验证;
- 计算机培训微课设计与实现,微课设计与制作
- Cassandra入门调研
- 小程序获取openid和unionid服务号获取unionid服务号消息推送
- 通过Zadig给蓝牙适配器安装驱动后,无法恢复的解决办法
- 2021年全球与中国滚齿机行业市场规模及发展前景分析