用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

白天穿梭于课堂和图书馆的你,是否也想成为一名开发者,自己通过尖端技术把梦想中的世界呈现在大家眼前?Unity与当下炙手可热的虚拟现实(VR)技术,让许多富有创意的开发者开启了自己的“造梦之旅”。当前最受欢迎的移动端VR平台之一 - Google Daydream成为了开发者的梦想舞台,今天的文章我们教大家如何用Unity在Daydream上打造沉浸感十足的VR体验,让虚拟“白日梦”变成现实。

今年9月,我们发布了原生支持Daydream平台的Unity技术预览版。在本文中,Unity大中华区的Marek,作为Unity Evangelist为大家带来Daydream在Unity下的开发与实例分享,首先将帮助您了解开发Daydream应用所需的设备和软件;其次,将指导您完成安装过程,以便您可以立即开始创建Daydream平台的游戏;最后,为您提供几个优秀的案例,希望可以为您带来更好的游戏设计思路。

入门
创建Daydream游戏之前,我们需要做开发前的软硬件准备,包括Daydream设备和Unity的Google VR技术预览版。

Daydream设备
Daydream设备包括一个Daydream View头盔、控制器和支持Daydream的手机。真机测试游戏需要以上所有设备。如果您仅希望在Unity编辑器的运行模式下测试游戏,则任何类型的Android手机均可。我们会在下文关于编辑器中的VR模拟器一节中继续讨论这个问题。
Daydream View套装包括虚拟现实头盔和控制器。该套装可在线购买。Cardboard和Daydream的最大区别是:Daydream 头盔由布料制造,质量更好,并配备了NFC芯片。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

支持Daydream的手机
目前有五类手机可用:
• Pixel (Pixel, Pixel XL)
• Moto Z (Moto Z, Moto Z Droid, Moto Z Force Droid)

支持Daydream的手机正在不断增加。有关详细信息,您可以查看Google官方网站。如果您没有此列表中的任何手机,也可以使用Daydream开发套件与Nexus 6P手机,但Nexus 6P的散热性能不及支持Daydream的手机。

Unity的Google VR技术预览版
创建Daydream的Build需要使用Unity的Google VR技术预览版。您可以在Unity官网下载,OS X和Windows版本都有。它包含基于Unity 5.4.2版本的自定义编辑器和Android Player。

Google VR SDK
Google VR SDK是开发Daydream所必需的。SDK提供原生集成的Google VR,还包含一些其它功能,详情见下文。

SDK的内容
原生集成的功能:
• 头部跟踪
• 并排立体渲染
• 检测用户与系统的交互
• 针对特定头戴设备的自动立体渲染配置
• VR头盔镜头的失真校正
• 对齐标记 - 当您将手机插入到头盔中时,帮助您将手机屏幕与镜头对齐
• 自动陀螺仪运动检测

附加功能:
• Daydream控制器支持
• 空间音频渲染
• 一个简单取景器(reticle)预制件和基于凝视的用户交互相关脚本
• 在Unity编辑器的运行模式下进行VR模拟,您可以使用鼠标和Alt / Ctrl键平移或旋转VR摄像头
• “Headset Demo”场景- 演示一个简单的Cardboard游戏
• “Controller Demo”场景 - 演示与Daydream控制器的集成
• 显示FPS的预制件

安装指南
1. 从此链接下载GoogleVR SDK。
2. 下载并安装Unity预览版。
3. 打开Unity,建立一个新的3D项目。
4. 将SDK导入项目。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

  1. 在Player Settings下的Android选项卡下,单击”Virtual Reality Support”并选择Daydream平台。
  2. 在Minimum API Level选择Android 7.0 Nougat或更新的版本。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

经过以上的步骤,您的Daydream开发环境基本就搭建完毕了。

两个演示场景
1. 控制器演示
GoogleVR\DemoScenesControllerDemo\ControllerDemo.asset

这个场景展示了Daydream控制器的简单使用。 在Unity编辑器中,您可以使用Android手机与控制器仿真来模拟Daydream控制器。

  1. 头盔演示
    GoogleVR\DemoScenes\HeadsetDemo\DemoScene.asset

这个场景展示了简单的Cardboard或Daydream头盔行为。可以通过按下“Alt”键并移动鼠标在Unity编辑器中移动摄像机, 您也可以通过按下“Ctrl”键并移动鼠标来旋转摄像机。

控制器
Cardboad和Daydream的主要区别是Daydream有一个控制器,控制器使用户体验更类似于HTC Vive或者Oculus Rift。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享
仿真的控制器

控制器由三个区域组成:
• TouchPad - 检测触摸区域上是否有手指,并检查手指的位置。 TouchPad也可以点击。
• App按钮 - TouchPad下方的按钮。
• Home按钮 - 为Android系统保留的按钮。

可以通过场景中的GvrController类来获得有关控制器的输入和状态的信息。此类通过访问此单例的静态属性来提供连接状态、方向、陀螺仪读数、加速度、触摸板和按钮状态。

编辑器中的VR模拟器
因为Daydream平台是最近才发布的,所以您可能无法及时获得必需的硬件,在Unity编辑器的运行模式下测试游戏也是个不错的选择。在这种情况下,VR模拟器非常有用。谷歌提供一个APP,可以安装在所有类型的Android手机,它会模仿真实的Daydream控制器的行为。

要使用控制器仿真,您需要:
1. 从GitHub下载最新的控制器仿真.apk文件。
2. 将其安装在手机上。
3. 打开控制器仿真APP。在控制器仿真上面有一个IP地址,游戏需要使用这个IP地址进行控制器和游戏之间的通信。您可以复制并粘贴在Assets\GoogleVR\Controller\Internal\Emulator路径下的EmulatorConfig.cs脚本中。

这个脚本有两个重要参数:
USB_SERVER_IP
WIFI_SERVER_IP

在两个地方填写相应的IP地址:
[AppleScript] 纯文本查看 复制代码
?
/#——内部参数 (不需要修改). —–*/
//通过USB链接PC时,手机的IP地址。
Public static readonly string USB_SERVER_IP = “127.0.0.1”;
//通过WiFi链接PC时,手机的IP地址。
Public static readonly string WIFI_SERVER_IP = “127.0.0.1”;

  1. 将模拟器连接模式调整为Wifi或者USB模式,默认情况下是“OFF”。找到Assets\GoogleVR\Prefabs\Controller\GvrController路径下
    “GvrControllerMain” 预制件。该预制件默认带有“GvrController”脚本。请注意,如果想通过WiFi连接,Android手机和运行Unity编辑器的电脑必须连接到同一个WiFi。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

使用控制器仿真可能有一点不便,就是不能触摸真的控制器。谷歌提供了解决方案: 可以下载并打印一个屏幕覆盖层,包括letter, A4和SVG三种格式。打印好后将相应按键的位置挖洞,并放在手机上面,就可以获得更真实些的体验。

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

开发实例
最好的学习方法就是查看示例。 Google VR的GitHub代码库包含4个非常有用的示例,可帮助您全面了解如何使用新的Google VR:

Daydream Labs Controller Playground

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

这是一个结合了15个小游戏的大合集,该项目供了许多不错的例子,告诉用户如何充分利用控制器与VR头盔。介绍一些VR游戏中控制器常用的使用方法。

Cardboard Design Lab

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

如果您是VR初学者,那么可以从该示例开始。 在整个项目中,您将学习从设计VR的基础到创建沉浸式环境等VR设计相关内容。

Castle Defense

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

这是一个简单的VR手游示例。

Spatial Audio

用Unity实现属于你的VR “白日梦“,Daydream在Unity下的开发与实例分享

这个项目将帮助您了解在VR项目中实现真实音频效果的最佳做法。它用到了Google VR的音频渲染功能。

总结
本文为大家介绍了初步开发Daydream平台所需的设备和软件。 不久以后,预览版本中的功能将集成到Unity 5.6正式版中,在此之前,请先使用预览版本。

如果您需要帮助,请查看我们的Daydream预览论坛,订阅Unity官方微信或查看Daydream官方网站。

同学们如果想掌握更多Unity开发VR内容的知识与技巧,通过更系统的学习变身Unity技术达人,创造出梦想中的游戏,请关注“技术闪耀未来-Unity全球技术校园行”。

“技术闪耀未来-Unity全球技术校园行”- Unity Plus加强版开学季专属优惠(9月1日-9月30日):
1, 特惠价格139元/月订阅价
2, 免费获得Unity认证开发者课程(访问权截止到12月31日)
3, 免费获得1款资源工具包:VR、2D、艺术设计和移动平台(4选1)
点击此链接,完成订阅购买:https://store.unity.com/cn/offer/unity-essentials-education-packs?login=1
打开购买页面后,请选择在中文语言打开此优惠页面