本指南介绍了如何使用适用于 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 并创建新项目。
- 打开 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 以打开“检查器”窗口。将其图层设置为“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 设置中,清除渲染时应用显示旋转复选框。
- 如果 Unity 版本为 2021.2 或更高版本,请在纹理压缩格式中选择
ETC2
。
- 如果 Unity 版本为 2023.1 或更高版本,请选择
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 品牌推广指南。