您当前的位置:首页 VR开发 Unity 正文

Unity for Oculus 开发指南之二

查看: 5682| 评论: 0 2016-1-3 11:15 PM| 发布者: administrator |原作者: 夜行的猫仔

Getting Started开始
这个版块描述了如何开始用Unity展开工作。

导入Unity整合包

如果你已经做好准备要进行Unity的项目开发了,记得在开始之前先存个档。

首先,创建一个新的项目来导入Oculus组件。在Unity菜单里,选择文件—新项目。点击Browse按钮选择放置Unity项目的文件夹位置。确保Setup defaults for:区域选择的是3D
不需要再导入任何标注或Pro Unity组件包,因为Oculus Unity整合包已经完全包含进去了。
点击Create按钮,Unity会重启并读取新的项目。
要想把整合包导入Unity,选择AssetCustom Package…并选择Unity Intergration.unitypackage来把组件都导入到你的新项目里。当然你也可以直接双击那个文件,效果是一样的。
Importingpackage日志框弹出时,全选所有内容并点击导入。整个过程可能会持续几分钟时间来完成。
移动SDK:移动Unity整合包包含了一个Project Settings文件夹,可以VR移动应用提供默认设置。你也可以自行将这些文件复制到你的[项目]/Assets/ProjectSettings文件夹下。
导入实例
在这个环节我们会描述一下如何把一个简单的Unity应用资源导入到Unity中,就拿BlockSplosion作为例子吧。
注意:实例应用的导入只与移动端有关。为PC开发而提供的Room实例已经作为一个场景被添加到Unity整合包里了。
如果已经准备好在Unity项目上开始工作,先记得存个档。
Assets/CustomPackage 选择BlockSplosion.unitypackage来把所有组件导入新项目里。当然,直接双击文件也行。
过程会持续几分钟时间。

VR添加到已有的项目中
Unity整合包可以用来将Oculus VR整合进一个已有的项目里。在面向VR开发的道路上这个方法会非常有用,但是把一个VR摄像头随便扔进一个并不是为VR设计的Unity游戏中,如果事先并没有在脑海里经过仔细构想(bestpractices)的话,可能没办法产生良好的体验效果。
注意:这只是一个将VR添加到已有应用程序的简单方案,绝不是唯一方法。举例说明,你大概也不想总是用OVRPlayerController
1. 导入包
2. 实例化一个OVRCameraRig,如果你已经搞懂了移动方面的内容或者通过实例化OVRPlayerController来负责移动。
3. 把所有非VR摄像头的脚本都复制到OVRCameraRig里。所有的图像效果都应该直接放到OVRCameraRig下的Left/RightEyeAnchorGameObjects里。
4. 把你之前的非VR摄像头通通Disable掉。
5. 像平常那样生成你的项目并运行。


从细节看Unity整合包
这个环节开始着重分析Unity整合包,包括整合包的目录结构,Unity预制体的描述以及几个关键的C#脚本。
注意:分别针对PC开发和捆绑在移动SDK上的Unity 整合包在内容上几乎没什么区别。

内容
OVR
OculusUnityIntegration.unitypackage中的OVR文件夹里的内容都是独特命名的,而且应该可以安全导入已有的项目里。
OVR路径下包含着如下的分支路径:


Editor编辑器   包含可以为Unity编辑器添加功能的脚本,还有强化过的C#组件脚本。
Materials材料    包含了整合包中图形组件会用到的材料,比如主要GUI屏幕。
Moonlight    包含了针对移动Gear VR开发而准备的类(仅针对移动端)
Prefabs预制体    包含了为了将VR嵌入Unity场景而提供框架的主要预制体:OVRCameraControllerOVRPlayerController
Resources资源    包含了部分需要被OVR脚本实例化的预制体和其他对象,比如主GUI
Scene    场景包含了简单的场景。
Scripts脚本    包含了将VR框架和Unity组件结合起来的C#文件。许多脚本都要结合多种预制体一起使用。
Shaders着色器    包含了多种Cg着色器,某些OVR组件会用得上。
Textures纹理    包含了图像部件,某些脚本组件会用得上。
注意:我们强烈建议开发者们不要直接修改内置的OVR脚本。

Plugins插件
插件文件夹包含了OculusPlugin.dll,能够使VR框架得以和windowsUnity32位和64位)交流数据。
这个文件夹同样包含了针对其他平台的插件:OculusPlugin.bundle对应MacOSAndroid/libOculusPlugin.sovrlib.jar,还有对应安卓的AndroidManifest.xml

Prefabs
预制体
当前的整合包里向Unity应用添加VR支持的功能都来源于于两个应该添加进场景的预制体。
• OVRCameraRig
• OVRPlayerController
要使用它们,拖过来扔到你场景里的预制体里就行。
注意:你也可以通过Oculus-Prefabs菜单把这些预制体加入场景。
OVRCameraRig
OVRCameraRig在场景中用来替换掉常规的Unity Camera。你只要把这东西拖进场景就可以直接开始在Gear VR或者Rift里看到画面了。
注意:确保关掉场景中的其他摄像头,确保OVRCameraRig是唯一一个启用的。
Figure 15: Prefabs: OVRCameraRig,expanded in the inspector


OVRCameraRig包含了两个Unity摄像头,俩眼一眼一个。本来目的是用来针对移动目标(比如一个到处走的角色,一辆车,一个炮塔等等),它替换掉的是传统的摄像头
下列脚本(组件)都附加在OVRCameraRig预制体上:
• OVRCameraRig.cs
• OVRManager.cs

OVRPlayerController
可以说是最简单的一种用来定位虚拟环境的方式了。它简单来说就是把一个OVRCameraRig预制体跟一个简单的character controller给绑在了一起。它包含了一个物理capsule,一个移动系统,一个简单的有立体感文字区域渲染的菜单系统,还有一个cross-hair组件。
要使用的话,把player controller拖到环境里面并且用游戏控制器来移动他,或者键盘和鼠标。
注意:确认一下环境里面的碰撞检测是不是激活状态。
下列两个脚本(组件)被绑定在OVRPlayerController预制体上:
• OVRPlayerController.cs
• OVRGamepadController.cs
Figure 16: Prefabs: OVRPlayerController,expanded in the inspector




52VR.COM微信扫一扫
52vr公众号
专注于VR的学习、开发和人才交流

52VR开发交流

相关推荐

已有 0 人参与

发表评论

您需要登录才可以回帖 登录 | 立即注册

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-21 11:27 PM

返回顶部