本指南介绍了如何使用适用于 Unity 的 Google Cardboard XR 插件来创建自己的虚拟现实 (VR) 体验。
您可以使用 Cardboard SDK 将手机变成 VR 平台。移动设备可以显示具有立体成像效果的 3D 场景、跟踪头部活动并作出相应反应,以及通过检测用户何时按下观看器按钮来与应用互动。
首先,您将使用 HelloCardboard,这是一个演示 Cardboard SDK 核心功能的演示游戏。在游戏中,用户会在虚拟世界中四处寻找并收集对象。本文将介绍如何执行以下操作:
- 设置您的开发环境
 - 下载并构建演示版应用
 - 扫描 Cardboard 观看器的二维码以保存其参数
 - 跟踪用户的头部动作
 - 通过为每只眼睛设置正确的失真来渲染立体图像
 - 开启和关闭 VR 模式
 
设置您的开发环境
软件要求:
- Unity 6000.0.23f1 或更高版本
- 请务必在安装过程中包含 Android 和 iOS Build Support。
 - 请务必安装补丁版本 23f1 或更高版本。
 
 - 必须安装 Git,并且 
git可执行文件必须位于PATH环境变量中。如需了解详情,请参阅 Unity 的软件包管理器 Git 支持文档。 
导入 SDK 并创建新项目
请按照以下步骤导入 Unity SDK 并创建新项目。
- 打开 Unity 并创建一个新的 3D 项目。
 - 在 Unity 中,依次前往 Window > Package Manager。
 - 点击 +,然后选择 Add package from git 网址。
 - 将 
https://github.com/googlevr/cardboard-xr-plugin.git粘贴到文本输入字段中。
该软件包应添加到已安装的软件包中。 - 前往 Google Cardboard XR Plugin for Unity 软件包。在示例部分中,选择导入到项目。
示例资源应加载到Assets/Samples/Google Cardboard/<version>/Hello Cardboard中。 
配置 HelloCardboard 场景
- 前往 
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes,选择 Add Open Scenes,然后选择 HelloCardboard 以打开示例场景。 - 打开图层菜单,然后选择修改图层…。
 - 定义一个名为“互动”的新层。
 - 点击 Treasure GameObject 以打开 Inspector 窗口。将其图层设置为“Interactive”。如果系统显示一个弹出式窗口,询问您是否要将所有子对象的层也设置为“互动”,请点击“是,更改子对象”。
 - 点击 Player > Camera > CardboardReticlePointer GameObject 以打开 Inspector 窗口。在“Cardboard reticle pointer”脚本中,选择“Interactive”作为 Reticle Interaction Layer Mask。
 
配置 Android build 设置
依次选择 File > Build Settings。
- 选择 Android,然后选择 Switch Platform。
 - 选择 Add Open Scenes,然后选择 HelloCardboard。
 
Player Settings
依次选择修改 > 项目设置...。
配置分辨率和演示设置
依次前往播放器 > 分辨率和演示。
- 将默认方向设置为横向(左)或横向(右)。
 - 停用优化帧同步。
 
配置其他设置
依次前往 Player > Other Settings。
- 在图形 API 中选择 
OpenGLES2、OpenGLES3或Vulkan,也可以选择它们的任意组合。 - 在 Minimum API Level 中选择 
Android 8.0 'Oreo' (API level 26)或更高级别。 - 在目标 API 级别中选择 
API level 35或更高级别。 - 在 Scripting Backend 中选择 
IL2CPP。 - 在目标架构中选择 
ARMv7、ARM64或同时选择两者,以选择所需架构。 - 在互联网访问权限中选择 
Require。 - 在 Active Input Handling 中选择 
Input System Package (New)。 - 在 Package Name 下指定您的公司网域。
 - 如果选择 
Vulkan作为图形 API:- 在 Vulkan 设置中,清除渲染时应用显示旋转复选框。
 - 在纹理压缩格式中选择 
ETC2。 
 - 选择 
Activity,然后在应用入口点中清除GameActivity。 
配置发布设置
依次前往 Player > Publishing Settings。
- 在build部分中,选择 
Custom Main Gradle Template和Custom Gradle Properties Template。 将以下代码行添加到
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'将以下行添加到
Assets/Plugins/Android/gradleTemplate.properties:android.enableJetifier=true android.useAndroidX=true
配置 XR 插件管理设置
前往 XR Plug-in Management。
- 在插件提供方下选择 
Cardboard XR Plugin。 
构建您的项目
依次选择 File > Build Settings。
- 选择构建,或选择设备,然后选择构建并运行。
 
配置 iOS 项目设置
依次选择 File > Build Settings。
- 选择 iOS,然后选择 Switch Platform。
 - 选择 Add Open Scenes,然后选择 HelloCardboard。
 
Player Settings
依次选择修改 > 项目设置...。
配置分辨率和演示设置
依次前往 Player > Resolution and Presentation。
- 将默认方向设置为横向(左)或横向(右)。
 
配置其他设置
依次前往 Player > Other Settings。
- 在相机使用情况说明中,输入 
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).。 - 在目标最低 iOS 版本中,写入 
12.0。 - 在 Package Name 下指定您的公司网域。
 - 在在边缘处延迟系统手势中,检查 
Top Edge、Left Edge和Right Edge。 
配置 XR 插件管理设置
前往 XR Plug-in Management。
- 在插件提供方下选择 
Cardboard XR Plugin。 
构建您的项目
依次选择 File > Build Settings。
- 选择 Build 或 Build and Run。
 
重新置中
借助 Cardboard SDK,您可以使用 Recenter() 重新居中头部跟踪器。
按照以下步骤操作,使用示例应用试用该功能:
- 将设备移动到您想要重新居中的位置(用作新的向前看头部姿势)。
 - 将 Cardboard 设备的触发器保持在有效状态至少三秒。
 - 释放触发器。
 - 初始姿势现在位于相机所指的方向。
 
开启和关闭 VR 模式
借助 Unity XR 插件管理 API,您可以为 Google Cardboard XR 插件(适用于 Unity)开启或关闭 VR 模式。如需查看最终用户文档和使用示例,请参阅 Unity 的最终用户文档。
HelloCardboard 示例中的 VrMode 场景展示了上述 API 的基本用法。在此场景中,点按退出图标 
 即可关闭 VR 模式,再次点按屏幕上的任意位置即可重新开启 VR 模式。如需详细了解如何执行此操作,请查看 VrModeController.cs。
后续步骤
- 查看 Cardboard 品牌推广指南。