本指南介绍了如何使用适用于 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(软件包管理器)。
- 点击 +,然后选择通过 git 网址添加软件包。
- 将
https://github.com/googlevr/cardboard-xr-plugin.git
粘贴到文本输入字段。
该软件包应添加到已安装的软件包中。 - 前往 Google Cardboard XR 插件(适用于 Unity)软件包。在示例部分中,选择导入到项目。
应将示例资源加载到Assets/Samples/Google Cardboard/<version>/Hello Cardboard
。
配置 HelloCardboard 场景
- 前往
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
,选择添加打开的场景,然后选择 HelloCardboard 以打开示例场景。 - 打开图层菜单,然后选择修改图层…。
- 定义一个名为“Interactive”的新图层。
- 点击 Treasure 游戏对象以打开“Inspector”窗口。将其图层设置为“Interactive”。如果系统显示一个弹出式窗口,询问您是否也要将所有子对象的图层设置为“Interactive”,请点击“Yes, change children”(是,更改子对象)。
- 依次点击 Player > Camera > CardboardReticlePointer 游戏对象,打开 Inspector 窗口。在“Carboard reticle pointer”(纸板瞄准镜指针)脚本中,选择“Interactive”(交互)作为Reticle Interaction Layer Mask(瞄准镜互动图层遮罩)。
配置 Android 项目设置
依次选择 File(文件)> Build Settings(构建设置)。
- 选择 Android,然后选择 Switch Platform。
- 选择添加打开场景,然后选择 HelloCardboard。
Player Settings
解决方案和呈现方式
依次前往 Project Settings > Player > Resolution and Presentation。
- 将默认屏幕方向设置为左侧横向或右侧横向。
- 停用优化帧同步。
其他设置
依次前往 Project Settings > Player > Other Settings。
- 在图形 API 中,选择
OpenGLES2
、OpenGLES3
或Vulkan
,或它们的任意组合。 - 在 Minimum API Level 中,选择
Android 8.0 'Oreo' (API level 26)
或更高级别。 - 在目标 API 级别中,选择
API level 33
或更高级别。 - 在 Scripting Backend 中选择
IL2CPP
。 - 在目标架构中选择
ARMv7
和/或ARM64
,以选择所需的架构。 - 在互联网访问中选择
Require
。 - 在主动输入处理中,选择
Input System Package (New)
。 - 在 Package Name 下指定您的公司域名。
- 如果选择了
Vulkan
作为图形 API:- 在 Vulkan 设置中,取消选中渲染时应用屏幕旋转复选框。
- 如果 Unity 版本为 2021.2 或更高版本,请在纹理压缩格式中选择
ETC2
。
- 如果 Unity 版本为 2023.1 或更高版本,请选择
Activity
,然后在应用入口点中清除GameActivity
。
发布设置
依次前往 Project Settings > 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 插件管理设置
依次前往 Project Settings > XR Plug-in Management。
- 选择插件提供方下的
Cardboard XR Plugin
。
构建您的项目
依次选择 File(文件)> Build Settings(构建设置)。
- 选择 Build,或选择设备并选择 Build and Run。
配置 iOS 项目设置
依次选择 File(文件)> Build Settings(构建设置)。
- 选择 iOS,然后选择 Switch Platform。
- 选择添加打开场景,然后选择 HelloCardboard。
Player Settings
解决方案和呈现方式
依次前往 Project Settings > Player > Resolution and Presentation。
- 将默认屏幕方向设置为左侧横向或右侧横向。
其他设置
依次前往 Project Settings > 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 下指定您的公司域名。
XR 插件管理设置
依次前往 Project Settings > XR Plug-in Management。
- 选择插件提供方下的
Cardboard XR Plugin
。
构建您的项目
依次选择 File(文件)> Build Settings(构建设置)。
- 选择 Build 或 Build and Run。
重新居中
借助 Cardboard SDK,您可以使用 Recenter()
重新居中头部跟踪器。
如需使用示例应用试用此功能,请按以下步骤操作:
- 将设备移至您要重新居中的头部位置(用作新的向前看头部姿势)。
- 让 Cardboard 设备的触发器保持活跃状态至少 3 秒钟。
- 释放触发器。
- 初始姿势现在与相机指向的方向一致。
开启和关闭 VR 模式
借助 Unity XR 插件管理 API,您可以为 适用于 Unity 的 Google Cardboard XR 插件开启或关闭 VR 模式。如需查看最终用户文档和使用示例,请参阅 Unity 的最终用户文档。
HelloCardboard 示例中的 VrMode 场景展示了上述 API 的基本用法。在此场景中,您可以通过点按退出图标 关闭 VR 模式,只需点按屏幕上的任意位置即可重新开启。如需详细了解执行方式,请参阅 VrModeController.cs。
后续步骤
- 查看 Cardboard 品牌推广指南。