使用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

相关文章

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java使用Swing生成一个最大公约数计算器

《Java使用Swing生成一个最大公约数计算器》这篇文章主要为大家详细介绍了Java使用Swing生成一个最大公约数计算器的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下... 目录第一步:利用欧几里得算法计算最大公约数欧几里得算法的证明情形 1:b=0情形 2:b>0完成相关代码第二步:加

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV