您的位置:首页 > 移动开发 > Unity3D

使用Unity 5开发Gear VR应用

2016-04-26 13:29 316 查看
2016年是VR元年,我也在这一年接触VR和Unity,把玩了很多VR设备,也萌生了一些开发VR内容的想法。于是干脆开个VR/AR的博文分类,就用这篇基于Unity开发Gear VR内容的教程(windows平台)作为填坑第一篇。本篇是完完全全的从0开始的配置,连Unity都没有接触的过朋友也可以参考本文一步步搭建好开发环境。另外本文随着Unity更新修改了好几次,也被CSDN的虚拟现实知识库收录一段时间后又踢出,这是最后一次更新(20170703),以后不再修改本文

作为VR眼镜+手机解决方案中的头牌,三星的Gear VR不论在平台内容还是设备体验上都当之无愧(国内阉割版除外)。Gear VR背后的技术支持是Oculus,然而其官方文档对很多英文不好的朋友来说困难比较大,更要命的是它的文档写得实在是太过于跳跃了……链接跳来跳去,跳到文档另一个部分,跳到别的网站……跳着跳着都不知道刚才从哪一页跳过来的了!这篇文章把我自己使用Unity参考Oculus官方文档、从零摸索配置开发环境、最后开发出若干个Gear VR应用的经验整理总结出来,分享给有需要的入门开发者,您就不用去看Oculus跳来跳去的官方文档,按照本文配置开发环境就可以着手开发Gear VR平台上的VR内容了。



1 Unity和开发工具

Unity自从5.x版本开始原生支持 Oculus Rift, Gear VR, Hololens以及PS VR这四个平台的内容开发,相当于内置了四个的SDK,所以如果您下载了最新版本的Unity,就不需要下载安装任何插件。

如果您的Unity是5.3.3p3~5.3.4p4以及5.4.0b11~5.4.0b15这几个版本,需要下载OVRPlugin for Unity5(说白了这几个版本对VR的支持有Bug)进行补救,下载链接:

https://developer.oculus.com/downloads/game-engines/1.3.2/OVRPlugin_for_Unity_5/

然后定位到你电脑上Unity安装目录下的Unity\Editor\Data\VR\Unity,先删干净文件夹下的内容(非以上几个小版本的Unity一旦删了这个内容就不再有原生支持Gear VR开发了,只能重新下载Unity,一定要注意),再把下载的东西解压进去。

除了安装Unity主程序还要安装安卓支持包,这个在Unity下载器里都可以勾选:其中为了开发Gear VR,主程序、Android Build Support必选,Standard Assets推荐勾选,包含了第一、三人称控制器等组件可以在开发时直接导入。



至于Unity版本和编译器,虽然Unity自带了Monodevelop,但是仍然建议使用Unity 5.6+和Visual Studio 2017,因为5.6版本之后和VS配合更加紧密,VS2017的工具包针对Unity开发进行了特别的优化,代码高亮、补全和调试等更加方便。VS 2017可是Unity官方在其全球开发者大会Unite 2017 Shanghai给了专场演讲的,可见之后双方合作会更加深入。

吐槽下越来越庞大的Visual Studio,2017社区版的所有组件和语言包安装好一共有接近100个G,所以请根据需要自行选择。反正我不用其他功能,因此只选择了主程序和Unity开发工具包,专门用于Unity的开发,占空间还是很小的。

2 Unity SDK(非必须,针对不使用原生支持的用户)

当然也有朋友想自己搞事情,毕竟原生支持未必能满足要求。那么就需要去Oculus官网下载Mobile SDK,实际上就是一个unitypackage包,内含了第一人称控制器、双摄像机、视线碰撞逻辑脚本等,直接导入到工程中即可。这个的内容比较多,能用到这一步的也不是菜鸟了,这里就不在赘述。

其实这才是开发一般VR应用的必要步骤,要在哪个平台下运行,就去下载对应的SDK(一般都是这种asset包,比如暴风魔镜、Google Cardboard的SDK都是)导入到项目中,基于它开发或者用它替换原来的单摄像机开发。

3 JDK和Android SDK下载

JDK下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

SDK下载:http://developer.android.com/sdk/index.html

对于SDK需要提醒一下:拉到最下端下载SDK_tools package,不用下载Android Studio!下载安装好了以后打开sdk manager把tools,extras都下载好,需要版本的android sdk都下载好。选定了某个API之后(如API23),Tools文件夹中对应该API版本的的Tools, Platform-tools和Build-tools必须下载,对应版本API文件夹中的SDK Platform必须下载。



下载好了以后别忘了到Unity中菜单Edit->Preference中设置SDK和JDK的路径。完成这一步之后你就可以将应用打包成apk安装到手机上了,但是别急,这个apk还不能用。

4 osig设置

Gear VR必备的蛋疼步骤,Oculus通过这个限制了个人开发者,每在一个手机上安装就需要一个oculus官方提供的该手机特定的签名

连接你的三星手机和电脑,进入cmd,定位到你刚刚下载的一堆东西里adb.exe的目录(如果配置了环境变量则直接如下操作就行。至于怎么设置环境变量,这个百度一下一大把),然后输入
adb devices
,稍等几秒就会输出
list of devices attached
,它下面那行字符串就是你的device id,记下来。

拿到了device id之后,进入https://developer.oculus.com/osig/ 输入你的device id,就可以下载一个osig。这个要保管好,以后任何一个VR应用在build之前,都要把该文件拷贝到项目目录下的Project/Assets/Plugins/Android/assets/中(没有这个路径就需要自己新建文件夹),osig配置就完成了。(AR SDK提供商也差不多,一个App分给你一个签名,必须得有)

5 build设置

前四部设置好之后你就可以进行内容的开发。内容开发完毕后,最后这一步对于开发过android游戏的人来说就很熟悉了。

5.1 设置平台

打开你的Unity项目,File>Build Settings>Platform,一般是默认PC平台,这里选中Android,单击switch platform按钮转换到安卓平台。如果需要压缩纹理常选择ETC1(不支持透明通道)或者ETC2(但设备支持有限)。



5.2 设置VR原生支持

单击Player Settings按钮,在Other Settings>Rendering勾上Virtual Reality Supported(5.4版本之前不要勾选这个选项上方的Stereoscope Rendering,5.4及5.5勾选此选项会有下拉栏的Oculus选项,选择之后不要勾选Split Stereo Display,5.6勾选然后选择Oculus之后不需要其他操作)



5.3 设置安卓API和版本信息

Idetification>Minimum API Level选择你所拥有的API版本(见步骤3);

p.s. 对于Unity小白来说,要注意playter settings -> other settings里的Bundle Identifier,一般是
com.YourCompanyName.YourProductName
,别原文复制粘贴上去了……Bundle Identifier是安卓系统用来分辨apk的,同一个应用的不同版本Version值不同,但Bundle Identifier保持一致。不同的应用要使用不同的Bundle Identifier,不然安卓系统会认为这几个apk是同一个应用的不同版本,这样你的手机就不能同时安装你开发的这些应用了。

5.4 设置发布信息

在Publishing Settings里设置新的Keystore和Key,就可以Build了。将生成的apk文件拷到你的三星手机上,安装好然后打开应用程序,会提示连接Gear VR。此时将手机放入您的Gear VR,即可体验所开发的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息