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

相关文章

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.