使用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应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/hermanncain/article/details/51249783
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/209378

相关文章

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边