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. 点击 +,然后选择通过 git 网址添加软件包
  4. https://github.com/googlevr/cardboard-xr-plugin.git 粘贴到文本输入字段。
    该软件包应添加到已安装的软件包中。
  5. 前往 Google Cardboard XR 插件(适用于 Unity)软件包。在示例部分中,选择导入到项目
    应将示例资源加载到 Assets/Samples/Google Cardboard/<version>/Hello Cardboard

配置 HelloCardboard 场景

  1. 前往 Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes,选择添加打开的场景,然后选择 HelloCardboard 以打开示例场景。
  2. 打开图层菜单,然后选择修改图层…
  3. 定义一个名为“Interactive”的新图层。
  4. 点击 Treasure 游戏对象以打开“Inspector”窗口。将其图层设置为“Interactive”。如果系统显示一个弹出式窗口,询问您是否也要将所有子对象的图层设置为“Interactive”,请点击“Yes, change children”(是,更改子对象)。
  5. 依次点击 Player > Camera > CardboardReticlePointer 游戏对象,打开 Inspector 窗口。在“Carboard reticle pointer”(纸板瞄准镜指针)脚本中,选择“Interactive”(交互)作为Reticle Interaction Layer Mask(瞄准镜互动图层遮罩)。

配置 Android 项目设置

依次选择 File(文件)> Build Settings(构建设置)。

  1. 选择 Android,然后选择 Switch Platform
  2. 选择添加打开场景,然后选择 HelloCardboard

Player Settings

解决方案和呈现方式

依次前往 Project Settings > Player > Resolution and Presentation

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

其他设置

依次前往 Project Settings > Player > Other Settings

  1. 图形 API 中,选择 OpenGLES2OpenGLES3Vulkan,或它们的任意组合。
  2. Minimum API Level 中,选择 Android 8.0 'Oreo' (API level 26) 或更高级别。
  3. 目标 API 级别中,选择 API level 33 或更高级别。
  4. Scripting Backend 中选择 IL2CPP
  5. 目标架构中选择 ARMv7 和/或 ARM64,以选择所需的架构。
  6. 互联网访问中选择 Require
  7. 主动输入处理中,选择 Input System Package (New)
  8. Package Name 下指定您的公司域名。
  9. 如果选择了 Vulkan 作为图形 API
    • Vulkan 设置中,取消选中渲染时应用屏幕旋转复选框。
    • 如果 Unity 版本为 2021.2 或更高版本,请在纹理压缩格式中选择 ETC2
  10. 如果 Unity 版本为 2023.1 或更高版本,请选择 Activity,然后在应用入口点中清除 GameActivity

发布设置

依次前往 Project Settings > 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 插件管理设置

依次前往 Project Settings > XR Plug-in Management

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

构建您的项目

依次选择 File(文件)> Build Settings(构建设置)。

  1. 选择 Build,或选择设备并选择 Build and Run

配置 iOS 项目设置

依次选择 File(文件)> Build Settings(构建设置)。

  1. 选择 iOS,然后选择 Switch Platform
  2. 选择添加打开场景,然后选择 HelloCardboard

Player Settings

解决方案和呈现方式

依次前往 Project Settings > Player > Resolution and Presentation

  1. 默认屏幕方向设置为左侧横向右侧横向

其他设置

依次前往 Project Settings > 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 下指定您的公司域名。

XR 插件管理设置

依次前往 Project Settings > XR Plug-in Management

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

构建您的项目

依次选择 File(文件)> Build Settings(构建设置)。

  1. 选择 BuildBuild and Run

重新居中

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

如需使用示例应用试用此功能,请按以下步骤操作:

  1. 将设备移至您要重新居中的头部位置(用作新的向前看头部姿势)。
  2. 让 Cardboard 设备的触发器保持活跃状态至少 3 秒钟。
  3. 释放触发器。
  4. 初始姿势现在与相机指向的方向一致。

开启和关闭 VR 模式

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

HelloCardboard 示例中的 VrMode 场景展示了上述 API 的基本用法。在此场景中,您可以通过点按退出图标 关闭 VR 模式,只需点按屏幕上的任意位置即可重新开启。如需详细了解执行方式,请参阅 VrModeController.cs

后续步骤