unity5.3 VR开发
转载来自 http://toutiao.com/i6226112237539426818/ 请注重原创
不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场
如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~
如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过。虽然Unity从5.1版本开始就支持VR应用和游戏开发,但是从Oculus和Unity双方的开发者论坛讨论情况看,大家都对双方互相推诿责任感到不满。
如今,随着第一代消费级移动VR产品Samsung Gear VR正式推向市场,而三大核心主力设备也将悉数于2016年Q1和Q2粉墨登场,一向与时俱进的Unity再也坐不住了。
就在今天,Unity官方在推出5.3版本的同时也推出了首个官方的VR开发教程。虽然不是很详细,但是对于苦逼了很久的开发者来说,简直就是仙音佛乐。
废话少说,让我们来一起看看吧。
PART I UNITY VR简介
Unity内置对若干VR设备的支持,至于具体是哪些设备,不妨看看VRDeviceType这个枚举变量。
本教程主要针对Oculus系列的VR设备,特别是Oculus Rift Development Kit 2(DK2)和消费者版本的Samsung Gear VR(需要配合三星旗舰手机系列使用,如Galaxy S6, S6 Edge,S6 Edge+,Note 5)。对于配合第一代开拓者版本Gear VR的Note4,我们并不关心。因此虽然有些VR示例还是可以在这台设备上运行,但是效果肯定没那么好。哥,你就明说不要用note4和开拓者版本的gear vr好了。
当然,Unity也会在后续支持其它VR头戴设备,比如HTC VIVE。因此当那一天到来的时刻,这篇官方的教程也会随之更新的。老实说,Unity和Oculus真是一对好基友。
如果想了解VR头戴设备的更多信息,建议去阅读官方的手册。
PART II 在Unity项目中设置VR
首先请下载最新的Oculus runtime 0.8或更高版本(https://developer.oculus.com/downloads/ ),以及最新的Unity5.3或更高版本(http://unity3d.com/get-unity/download )。
在项目中启用对VR的支持废除简单,只需要在Unity菜单中选择Edit > Project Settings> Player > Other Settings > Rendering
然后在Inspector中勾选”Virtual Reality Supported“。
在runtime时,可以通过在代码中使用UnityEngine.VR.VRSettings.enabled属性来进行设置。
PART III 在Unity中预览VR场景
当我们在Unity Editor中已经启用VR Support,而且连接上了DK2设备时,进入Play 模式就可以在DK2上显示游戏的场景。这样可以大大提高开发测试和迭代的效率。和之前不同,开发者无需编译生成一个可执行的项目才能看到VR应用或游戏的调整。当然,老司机们会发现此前的双眼视图已经被单一视图替代了。
需要提醒大家的是,我们没必要为每只眼睛都创建一个camera,所有的camera都会在VR中进行渲染,除了那些分配了Render Texture(渲染纹理)的摄像机。关于Render Textures,请参考这里(http://docs.unity3d.com/Manual/class-RenderTexture.html )。Unity会自动对摄像机的渲染进行优化,比如culling(剔除)和阴影渲染,从而减少性能消耗。
关于VR的相关主题还可以在Unity Manual(http://docs.unity3d.com/Manual/VROverview.html )和Unity Scripting API(http://docs.unity3d.com/ScriptReference/30_search.html?q=VR ) 和中找到更多信息。
PART IV 使用Unity进行VR开发的软硬件推荐
因为VR是一个全新的媒介,所以在撰写本教程的时候存在着软硬件的限制,请参考以下内容。
1.硬件
为了让用户获得好的VR游戏体验,需要在头戴设备上实现所需的帧速。在DK2上的最小帧速是75fps,而在Gear VR上的最小帧速是60fps。如果帧速小于以上数值,那么用户会明显感觉到体验下降甚至导致晕眩。
除了保持游戏帧速在一定的数值之上,玩家电脑上的GPU还必须具备足够的能力,可以按所需的分辨率以HMD头戴设备面板的刷新率输出。以DK2为例,就是需要做到75hz和1920*1080。不过如果你想给Oculus Rift CV1开发应用,那么就必须实现90hz和2160*1200的分辨率,这将是个巨大的挑战。
如果你在使用DK2,那么需要确保硬件设备可以用所需的分辨率以所需的刷新率输出图像。很多笔记本电脑采用独立显卡和集成显卡切换的方式,但这些显卡基本上都无法满足以上要求,甚至连1920*1080和75hz都实现不了,这样将严重影响用户体验。关于这部分内容,请参考Oculus的相关文档(https://support.oculus.com/hc/en-us/articles/201835987-Oculus-Rift-Development-Kit-2-FAQ ),以及Oculus PC配置指南(https://www.oculus.com/en-us/oculus-ready-pcs/ )。
2.软件
苹果OS X操作系统:目前来说我们还是可以使用OSX 10.9以上的操作系统配合Oculus 0.0.5 runtime进行开发。但因为Oculus官方暂停了对OS X系统的支持,因此建议果粉们不要拍砖,还是老老实实用Windows系统,并使用Unity的原生VR功能。
Windows: 支持Windows 7,8,8.1和windows 10.
Android: 推荐使用android OS Lollipop 5.1或更高版本
显卡驱动:请确保你的显卡驱动是最新的。可以使用Oculus Configuration Utility来检查显卡驱动是否够用。
Oculus Runtime:为了在Unity 5.3中进行VR开发,请使用Oculus Runtime 0.8或更高版本。
PART V VR示例项目
作为本教程的一部分,我们在Asset Store上免费提供了一个VR示例项目。该项目可以同时支持DK2和Gear VR,我们将根据Oculus硬件的迭代不断更新该示例项目,同时也会在将来考虑支持其它头戴设备。
该示例项目的下载链接如下:https://www.assetstore.unity3d.com/#!/content/51519
1.示例场景
主要的示例场景包括:
(1)Intro: 介绍场景,教用户学习基本的交互
(2)Menu:菜单场景,可以选择迷你游戏来玩
(3)Flyer:一个飞行小游戏
(4)Maze:一个桌面迷宫游戏
(5)Target Gallery:一个回廊射击游戏
(6)Target Arena:一个360度射击竞技场游戏
怎么样,Unity还是很厚道的吧?
除了这些完整的小游戏之外,还有一些示例场景涵盖了本教程的一些重要概念:
(1)InteractiveItem:演示了如何VR中和物体进行交互
(2)RenderScale:演示了RenderScale将如何影响图像质量
(3)Reticle: VR中 reticle的基本示例
(4)Rotation:演示了物体将如何随头部运动做出响应
(5)Touchpad:演示了如何使用Gear VR的触摸板进行交互。
所涵盖的重要概念:
(1)自顶向下的桌面游戏机制
(2)朝屏幕内的星际火狐风格的射击游戏机制
(3)回廊射击游戏机制
(4)360度回廊射击游戏机制
(5)如何在VR中设计界面
(6)如何设计立体界面
(7)在VR中和物体进行交互的基本框架,包括如何处理视线焦点的切换
(8)reticle运动、缩放、阴影等
(9)基于头部旋转的运动
(10)如何使用Gear VR触摸屏,包括轻击、双击和滑动,或是在使用DK2时如何使用键盘鼠标进行交互。
(11)如何判断设备时Gear VR还是DK2
(12)如何在围绕中心点旋转摄像机时避免晕眩效应
(13)如何实现摄像机的消隐
(14)摄像机消隐的过渡
(15)物体的池化
除了提供这些概念之外,为了方便VR开发者的重用,我们还提供了其它一些有用的示例:
(1)摄像机的消隐
(2)摄像机消隐的过渡
(3)在VR中和物体进行交互的框架
(4)Hold以确认交互
(5)reticle运动和缩放
(6)和平台无关的文本
(7)指示特定方向的UI箭头
(8)移动UI元素,使其始终面向摄像机
(9)交互时倾斜UI物体。
为了运行本项目,开发者需要使用Unity5.3.0或以上版本,拥有推荐配置以上的软硬件,拥有一台DK2或是搭配合适三星手机的Gear VR,同时要下载Oculus Runtime 0.8或以上版本。
PART VI Oculus Unity Utilities
作为补充,你也可以下载Oculus官方提供的Oculus Unity Utilities(https://developer.oculus.com/downloads/)来实现一些特殊功能。其中包含了有用的脚本和预设,比如如何调整IPD(瞳间距)等等。
本教程只关注原生Unity VR开发,因此对Oculus Unity Utilities,请参考Oculus官方网站以获取更多信息。(https://developer.oculus.com/downloads/game-engines/0.1.3.0-beta/Oculus_Utilities_for_Unity_5/ )
好了,现在你已经知道自己需要哪些东西了。第一篇教程到此结束,在后续的时间里面我们将进一步学习如何开始VR开发。
unity5.3 VR开发相关推荐
- 《Unity2018AR与VR开发快速上手》随书内容资源相关说明
我的第二本书,<Unity2018AR与VR开发快速上手>终于上市了,现在天猫和京东都有卖. 随书资源的百度盘链接被关闭了,只给了个"此链接分享内容可能因为涉及侵权.色情.反动. ...
- VR开发从何入手的实战分享
摘要: 6月25日,由CSDN主办的"[VR技术开放日]VR开发从何入手"在北京辽宁大厦隆重举行,会议邀请到小米互娱VR技术专家房燕良.焰火工坊CTO王明杨.资深VR开发工程师王秋 ...
- 《AR与VR开发实战》——2.7 3D物体识别
本节书摘来自华章出版社<AR与VR开发实战>一书中的第2章,第2.7节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7 3D ...
- VR开发中性能问题—OculusWaitForGPU
http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...
- Tango+Daydream,刀剑合璧的Android VR开发
Tango+Daydream,刀剑合璧的Android VR开发 2017-01-03 随着ASUS在CES2017上宣布了全球第一款同时具有Tango和Daydream两种能力的ZenFone AR ...
- 都说 VR 开发坑太多,结果华为云 5G Cloud VR 放了个大招儿!
VR技术的神奇我们不止一次领略,最早萌生于颇具创造力的科幻小说中,似乎只要一副眼镜,身边的世界就都变得不一样了,还记得卖座电影<头号玩家>带来的震撼吧?但值得提及的一点,那时的VR并不&q ...
- Google VR开发-Cardboard VR SDK头部追踪实现(罗德里格旋转公式)
一.罗德里格旋转公式 可以参考百度百科和维基百科进行了解. 概括来说就是罗德里格旋转公式就是用来求旋转后新向量的公式: 而这个公式可以转换成矩阵形式: 公式各部分的几何意义和推导原理参考下图 这个图证 ...
- VR相关学习资源,VR学习资源,VR开发资源
VR村-中国虚拟现实第一门户网站:http://www.vrcun.com/ 奇境官网-奇境科技VR官方网站:http://www.qj-vr.com/ 虚拟现实线下体验店_虚拟现实中控平台_591V ...
- cardboardSDK VR开发srcollview溢出解决。
问题如图 使用进行手机VR 开发时,遇到一些问题,比如,scrollview中的Mask组件,在Demo Build到手机上时,会造成溢出,即mask组件失效, 这是因为cardboard在渲染时,没 ...
最新文章
- 麦克纳姆轮全向移动原理
- 使用基本MVC2模式创建新闻网站
- Web前端开发笔记——第四章 JavaScript程序设计 第二节 变量
- C++语法:求vector中的最大值及其位置
- 【英语学习】【Level 07】U07 Stories of my Life L3 Campus memories
- 海归|94年的高校女博导,自曝曾两次想退学,如今获国家60万资助!
- torch各个版本镜像_如何解决在cuda上安装torch后torch.cuda.is_available()返回False
- c lambda表达式 select 改变字段名称_C博客作业01--分支、顺序结构 - 吖黑大帅
- html 给文字加图片背景,如何给文字添加背景图?给文字填充图片背景色的操作方法...
- WePhone手机软件已下架 疑因资金问题导致无法使用
- 民间文学【0006】
- 聊一聊以前公司的测试流程
- 972信息检索 | 第六章 专业性书目信息检索系统
- 深圳市基层就业补贴申请
- 金额转换,精确的元--分,换算
- 计算机桌面曝光,win7电脑桌面壁纸曝光过高影响图标怎么办?亲测实用解决方法...
- 马仕健原创的“光盘行动之歌”《粒粒皆辛苦》在网络走红
- HASP 4 加密狗模拟、解密硬复制HASP 4
- java的标量和聚合量_欧尼酱讲JVM(16)——如何基于逃逸分析进行代码优化
- GB28181国标协议通讯流程简析以及NVR注册不上等相关问题点记录
热门文章
- 重复文字自动查找工具-Word/TXT
- oracle里面substr,Oracle substr函数用法
- thymeleaf携带数据跳转页面
- 2018年湖南省第十四届大学生计算机程序设计竞赛 CSU 2164: 2018
- 第8章 SQL ORDER BY 关键字教程
- Java --怎么把long类型转换成int
- 大可乐android 4.3刷机包,大可乐2S的手机系统是什么?大可乐2S能升级安卓4.3吗?...
- 【IDT】 windows IDT GDT LDT
- 工具:帆软FineReport高级使用指南(二)
- 请输入标题 请输入文本内容