Google Cardboard for Unity 快速入门

本指南介绍了如何使用适用于 Unity 的 Google Cardboard XR 插件来创建自己的虚拟现实 (VR) 体验。

您可以使用 Cardboard SDK 将手机变成 VR 平台。移动设备可以显示具有立体成像效果的 3D 场景、跟踪头部活动并作出相应反应,以及通过检测用户何时按下观看器按钮来与应用互动。

首先,您将使用 HelloCardboard,这是一个演示 Cardboard SDK 核心功能的演示游戏。在游戏中,用户会在虚拟世界中四处寻找并收集对象。本文将介绍如何执行以下操作:

  • 设置您的开发环境
  • 下载并构建演示版应用
  • 扫描 Cardboard 观看器的二维码以保存其参数
  • 跟踪用户的头部动作
  • 通过为每只眼睛设置正确的失真来渲染立体图像
  • 开启和关闭 VR 模式

设置您的开发环境

软件要求:

  • Unity 2021.3.44f1 或更高版本
    • 请务必在安装过程中包含 Android 和 iOS Build Support。
    • 请务必安装补丁版本 44f1 或更高版本。
  • 必须安装 Git,并且 git 可执行文件必须位于 PATH 环境变量中。如需了解详情,请参阅 Unity 的软件包管理器 Git 支持文档。

导入 SDK 并创建新项目

请按照以下步骤导入 Unity SDK 并创建新项目。

  1. 打开 Unity 并创建一个新的 3D 项目。
  2. 在 Unity 中,依次前往 Window > Package Manager
  3. 点击 +,然后选择 Add package from git 网址
  4. https://github.com/googlevr/cardboard-xr-plugin.git 粘贴到文本输入字段中。
    该软件包应添加到已安装的软件包中。
  5. 前往 Google Cardboard XR Plugin for Unity 软件包。在示例部分中,选择导入到项目
    示例资源应加载到 Assets/Samples/Google Cardboard/<version>/Hello Cardboard 中。

配置 HelloCardboard 场景

  1. 前往 Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes,选择 Add Open Scenes,然后选择 HelloCardboard 以打开示例场景。
  2. 打开图层菜单,然后选择修改图层…
  3. 定义一个名为“互动”的新层。
  4. 点击 Treasure GameObject 以打开“检查器”窗口。将其图层设置为“Interactive”。如果系统显示一个弹出式窗口,询问您是否要将所有子对象的层也设置为“互动”,请点击“是,更改子对象”。
  5. 点击 Player > Camera > CardboardReticlePointer GameObject 以打开 Inspector 窗口。在“Cardboard reticle pointer”脚本中,选择“Interactive”作为 Reticle Interaction Layer Mask

配置 Android build 设置

依次选择 File > Build Settings

  1. 选择 Android,然后选择 Switch Platform
  2. 选择 Add Open Scenes,然后选择 HelloCardboard

Player Settings

依次选择修改 > 项目设置...

配置分辨率和演示设置

依次前往播放器 > 分辨率和演示

  1. 默认方向设置为横向(左)横向(右)
  2. 停用优化帧同步

配置其他设置

依次前往 Player > Other Settings

  1. 图形 API 中选择 OpenGLES2OpenGLES3Vulkan,也可以选择它们的任意组合。
  2. Minimum API Level 中选择 Android 8.0 'Oreo' (API level 26) 或更高级别。
  3. 目标 API 级别中选择 API level 35 或更高级别。
  4. Scripting Backend 中选择 IL2CPP
  5. 目标架构中选择 ARMv7ARM64 或同时选择两者,以选择所需架构。
  6. 互联网访问权限中选择 Require
  7. Active Input Handling 中选择 Input System Package (New)
  8. Package Name 下指定您的公司网域。
  9. 如果选择 Vulkan 作为图形 API
    • Vulkan 设置中,清除渲染时应用显示旋转复选框。
    • 如果 Unity 版本为 2021.2 或更高版本,请在纹理压缩格式中选择 ETC2
  10. 如果 Unity 版本为 2023.1 或更高版本,请选择 Activity 并清除应用入口点中的 GameActivity

配置发布设置

依次前往 Player > Publishing Settings

  1. build部分中,选择 Custom Main Gradle TemplateCustom Gradle Properties Template
  2. 将以下代码行添加到 Assets/Plugins/Android/mainTemplate.gradle 的依赖项部分:

      implementation 'androidx.appcompat:appcompat:1.6.1'
      implementation 'com.google.android.gms:play-services-vision:20.1.3'
      implementation 'com.google.android.material:material:1.12.0'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. 将以下行添加到 Assets/Plugins/Android/gradleTemplate.properties

      android.enableJetifier=true
      android.useAndroidX=true
    

配置 XR 插件管理设置

前往 XR Plug-in Management

  1. 插件提供方下选择 Cardboard XR Plugin

构建您的项目

依次选择 File > Build Settings

  1. 选择构建,或选择设备,然后选择构建并运行

配置 iOS 项目设置

依次选择 File > Build Settings

  1. 选择 iOS,然后选择 Switch Platform
  2. 选择 Add Open Scenes,然后选择 HelloCardboard

Player Settings

依次选择修改 > 项目设置...

配置分辨率和演示设置

依次前往 Player > Resolution and Presentation

  1. 默认方向设置为横向(左)横向(右)

配置其他设置

依次前往 Player > Other Settings

  1. 相机使用情况说明中,输入 Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
  2. 目标最低 iOS 版本中,写入 12.0
  3. Package Name 下指定您的公司网域。
  4. 在边缘处延迟系统手势中,检查 Top EdgeLeft EdgeRight Edge

配置 XR 插件管理设置

前往 XR Plug-in Management

  1. 插件提供方下选择 Cardboard XR Plugin

构建您的项目

依次选择 File > Build Settings

  1. 选择 BuildBuild and Run

重新置中

借助 Cardboard SDK,您可以使用 Recenter() 重新居中头部跟踪器。

按照以下步骤操作,使用示例应用试用该功能:

  1. 将设备移动到您想要重新居中的位置(用作新的向前看头部姿势)。
  2. 将 Cardboard 设备的触发器保持在有效状态至少三秒。
  3. 释放触发器。
  4. 初始姿势现在位于相机所指的方向。

开启和关闭 VR 模式

借助 Unity XR 插件管理 API,您可以为 Google Cardboard XR 插件(适用于 Unity)开启或关闭 VR 模式。如需查看最终用户文档和使用示例,请参阅 Unity 的最终用户文档

HelloCardboard 示例中的 VrMode 场景展示了上述 API 的基本用法。在此场景中,点按退出图标 “X”按钮 即可关闭 VR 模式,再次点按屏幕上的任意位置即可重新开启 VR 模式。如需详细了解如何执行此操作,请查看 VrModeController.cs

后续步骤