Unity 中的 Daydream 开发与实例

本文将帮助您了解开发 Daydream 应用所需的设备和软件并介绍安装过程,以便您可以立即开始创建 Daydream 平台的游戏,最后提供几个优秀的案例,为您带来更好的游戏设计思路。

入门

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

Daydream 设备

Daydream 设备包括一个 Daydream View 头盔、控制器和支持 Daydream 的手机。真机测试游戏需要以上所有设备。如果您仅希望在 Unity 编辑器的运行模式下测试游戏,则任何类型的 Android 手机均可。我们会在下文关于编辑器中的 VR 模拟器一节中继续讨论这个问题。

Daydream View 套装包括虚拟现实头盔和控制器。该套装可在线购买。Cardboard 和 Daydream 的最大区别是:Daydream 头盔由布料制造,质量更好,并配备了 NFC 芯片。

Unity 中的 Daydream 开发与实例

支持 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 的预制件

安装指南

下载 GoogleVR SDK 以及支持 Daydream 的 Unity 预览版。打开 Unity,建立一个新的 3D 项目,然后将 SDK 导入项目。

Unity 中的 Daydream 开发与实例

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

Unity 中的 Daydream 开发与实例

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

两个演示场景

  1. 控制器演示:ControllerDemo.asset

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

  2. 头盔演示:DemoScene.asset

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

控制器

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

Unity 中的 Daydream 开发与实例

仿真的控制器

控制器由三个区域组成:

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

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

编辑器中的 VR 模拟器

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

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

Unity 中的 Daydream 开发与实例

开发实例

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

Daydream Labs Controller Playground

Unity 中的 Daydream 开发与实例

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

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/DaydreamLabsControllerPlayground

Cardboard Design Lab

Unity 中的 Daydream 开发与实例

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

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/CardboardDesignLab

Castle Defense

Unity 中的 Daydream 开发与实例

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

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/CastleDefense

Spatial Audio

Unity 中的 Daydream 开发与实例

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

源码下载地址:

https://github.com/googlevr/gvr-unity-sdk/tree/master/Samples/CastleDefense

总结

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


当游戏开发门槛不断降低,技术不断革新,作为开发者的我们该如何顺势而为,充分发掘 Unity 的无限潜能?或许我们能够从 Unite 2017 Shanghai 这一行业顶级的开发者大会上获取更多的启示。目前,Unite 2017 Shanghai 购票通道已全面开启,更有5 折门票等你来拿,数量有限,预购从速!Keynote 入场券业已开放注册,期待与大家相聚在 Unite 2017 Shanghai!

猛戳链接或扫描下方二维码,开启 Unite 2017 Shanghai:http://unite2017.****.net/

Unity 中的 Daydream 开发与实例