使用Unity 5开发Gear VR应用

2023-10-14 08:40
文章标签 使用 应用 开发 unity vr gear

本文主要是介绍使用Unity 5开发Gear VR应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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内容了。

Gear 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版本和编译器,虽然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必须下载。

SDK管理

下载好了以后别忘了到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(但设备支持有限)。

Build Settings

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之后不需要其他操作)

VR支持

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,即可体验所开发的内容。

这篇关于使用Unity 5开发Gear VR应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209378

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window