本指南介绍了如何使用 Google Cardboard XR 插件 使用 Unity 创建 自己的虚拟现实 (VR) 体验。
您可以使用 Cardboard SDK 将手机变成 VR 平台。答 智能手机可以显示具有立体渲染的 3D 场景, 以及通过检测用户何时按下 观看器按钮。
首先,您将使用 HelloCardboard,这是一款演示游戏,演示了 Cardboard SDK 的核心功能在游戏中,用户四处观看一个虚拟的 寻找和收集物品该指南将介绍如何执行以下操作:
- 设置您的开发环境
- 下载并构建演示版应用
- 扫描 Cardboard 观看器的二维码以保存其参数
- 跟踪用户头部的移动
- 通过为每只眼睛设置正确的失真,渲染立体图像
- 开启和关闭 VR 模式
设置您的开发环境
软件要求:
- Unity 2021.3.32f1 或更高版本
- 请确保在安装过程中添加 Android 和 iOS 构建支持。
- 必须安装 Git 且
git
可执行文件 位于PATH
环境变量中。请参阅 Unity 的软件包管理器 Git 支持文档了解详情 。
导入 SDK 并创建一个新项目
请按照以下步骤导入 Unity SDK 并创建一个新项目。
- 打开 Unity 并创建一个新的 3D 项目。
- 在 Unity 中,前往 Window(窗口)>软件包管理器。
- 点击 +,然后选择 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”窗口。将其 设为“交互式”。如果出现一个弹出式窗口,询问您是否要 也将所有子对象层设置为“交互式”,点击“是, 更改子项”。
- 点击 Player >相机 >CardboardReticlePointer GameObject 用于 打开“Inspector”窗口在“Carboard 十字线指针”中脚本,选择 “互动式”十字线互动层遮罩。
配置 Android 项目设置
转到文件 >构建设置。
- 选择 Android,然后选择 Switch Platform。
- 选择 Add Open Scenes,然后选择 HelloCardboard。
Player Settings
分辨率和呈现方式
前往 Project Settings >玩家 >分辨率和呈现方式。
- 将默认方向设置为横向或横向 正确。
- 停用优化的帧同步。
其他设置
前往 Project Settings >玩家 >其他设置。
- 选择
OpenGLES2
、OpenGLES3
或Vulkan
,或者它们的任意组合 图形 API。 - 在 Minimum API 中选择
Android 8.0 'Oreo' (API level 26)
或更高版本 等级。 - 在目标 API 级别中选择
API level 33
或更高级别。 - 在 Scripting Backend 中选择
IL2CPP
。 - 通过选择
ARMv7
和/或ARM64
来选择所需的架构 目标架构。 - 在互联网访问中选择
Require
。 - 在软件包名称下指定您的公司网域。
- 如果选择
Vulkan
作为 Graphics API:- 在 Vulkan 中取消选中 Apply display rotation period(渲染期间应用屏幕旋转)复选框 设置。
- 如果 Unity 版本为 2021.2 或更高版本,请在 Texture 中选择
ETC2
压缩格式。
- 如果 Unity 版本为 2023.1 或更高版本,请选择
Activity
并清除 应用入口点中的GameActivity
。
发布设置
前往 Project 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.6.1' 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 Providers(插件提供程序)下的
Cardboard XR Plugin
。
构建您的项目
转到文件 >构建设置。
- 选择 Build,或者选择一个设备,然后选择 Build and Run。
配置 iOS 项目设置
转到文件 >构建设置。
- 依次选择 iOS 和 Switch Platform。
- 选择 Add Open Scenes,然后选择 HelloCardboard。
Player Settings
分辨率和呈现方式
前往 Project Settings >玩家 >分辨率和呈现方式。
- 将默认方向设置为横向或横向 正确。
其他设置
前往 Project Settings >玩家 >其他设置。
- 在相机使用情况说明中,写入
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
。 - 在目标最低 iOS 版本中,写入
12.0
。 - 在软件包名称下指定您的公司网域。
XR 插件管理设置
前往 Project Settings >XR 插件管理。
- 选择 Plug-in Providers(插件提供程序)下的
Cardboard XR Plugin
。
构建您的项目
转到文件 >构建设置。
- 选择 Build 或 Build and Run。
正在重新置中
借助 Cardboard SDK,您可以
重新设置头部跟踪器的中心位置
Recenter()
。
请按照以下步骤使用示例应用进行尝试:
- 将设备移至您想要重新居中的位置(用作新外观) 前方头部姿势)。
- 按住 Cardboard 设备的触发器至少 3 秒钟。
- 松开触发器。
- 初始姿势现在朝向镜头所指向的方向。
开启和关闭 VR 模式
Unity XR 插件管理 API 可让您 为 Google Cardboard XR 插件 Unity。最终用户文档 Unity 的最终用户 文档。
HelloCardboard 示例中的 VrMode 场景显示了 上述 API。在此场景中,您可以通过点按退出来关闭 VR 模式 ,且只需 点按屏幕上的任意位置查看 VrModeController.cs 详细了解具体的执行方式。
后续步骤
- 查看 Cardboard 品牌推广指南。