Google Cardboard for Unity 快速入门

本指南介绍了如何使用 Google Cardboard XR 插件 使用 Unity 创建 自己的虚拟现实 (VR) 体验。

您可以使用 Cardboard SDK 将手机变成 VR 平台。答 智能手机可以显示具有立体渲染的 3D 场景, 以及通过检测用户何时按下 观看器按钮。

首先,您将使用 HelloCardboard,这是一款演示游戏,演示了 Cardboard SDK 的核心功能在游戏中,用户四处观看一个虚拟的 寻找和收集物品该指南将介绍如何执行以下操作:

  • 设置您的开发环境
  • 下载并构建演示版应用
  • 扫描 Cardboard 观看器的二维码以保存其参数
  • 跟踪用户头部的移动
  • 通过为每只眼睛设置正确的失真,渲染立体图像
  • 开启和关闭 VR 模式

设置您的开发环境

软件要求:

导入 SDK 并创建一个新项目

请按照以下步骤导入 Unity SDK 并创建一个新项目。

  1. 打开 Unity 并创建一个新的 3D 项目。
  2. 在 Unity 中,前往 Window(窗口)>软件包管理器
  3. 点击 +,然后选择 Add package from git 网址
  4. https://github.com/googlevr/cardboard-xr-plugin.git 粘贴到文本中 输入字段。
    :应将软件包添加到已安装的软件包中。
  5. 找到 Google Cardboard XR Plugin for Unity 软件包。在 示例部分,选择导入项目
    示例素材资源 应加载到 Assets/Samples/Google Cardboard/<version>/Hello Cardboard 中。

配置 HelloCardboard 场景

  1. 前往 Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes,选择 Add Open Scenes,然后选择 HelloCardboard 以打开示例场景。
  2. 打开图层菜单,然后选择修改图层...
  3. 定义一个名为“交互式”的新层。
  4. 点击 Treasure GameObject 以打开“Inspector”窗口。将其 设为“交互式”。如果出现一个弹出式窗口,询问您是否要 也将所有子对象层设置为“交互式”,点击“是, 更改子项”。
  5. 点击 Player >相机 >CardboardReticlePointer GameObject 用于 打开“Inspector”窗口在“Carboard 十字线指针”中脚本,选择 “互动式”十字线互动层遮罩

配置 Android 项目设置

转到文件 >构建设置

  1. 选择 Android,然后选择 Switch Platform
  2. 选择 Add Open Scenes,然后选择 HelloCardboard

Player Settings

分辨率和呈现方式

前往 Project Settings >玩家 >分辨率和呈现方式

  1. 默认方向设置为横向横向 正确
  2. 停用优化的帧同步

其他设置

前往 Project Settings >玩家 >其他设置

  1. 选择 OpenGLES2OpenGLES3Vulkan,或者它们的任意组合 图形 API
  2. Minimum API 中选择 Android 8.0 'Oreo' (API level 26) 或更高版本 等级
  3. 目标 API 级别中选择 API level 33 或更高级别。
  4. Scripting Backend 中选择 IL2CPP
  5. 通过选择 ARMv7 和/或 ARM64 来选择所需的架构 目标架构
  6. 互联网访问中选择 Require
  7. 软件包名称下指定您的公司网域。
  8. 如果选择 Vulkan 作为 Graphics API
    • Vulkan 中取消选中 Apply display rotation period(渲染期间应用屏幕旋转)复选框 设置
    • 如果 Unity 版本为 2021.2 或更高版本,请在 Texture 中选择 ETC2 压缩格式
  9. 如果 Unity 版本为 2023.1 或更高版本,请选择 Activity 并清除 应用入口点中的 GameActivity

发布设置

前往 Project 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.6.1'
      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 插件管理

  1. 选择 Plug-in Providers(插件提供程序)下的 Cardboard XR Plugin

构建您的项目

转到文件 >构建设置

  1. 选择 Build,或者选择一个设备,然后选择 Build and Run

配置 iOS 项目设置

转到文件 >构建设置

  1. 依次选择 iOSSwitch Platform
  2. 选择 Add Open Scenes,然后选择 HelloCardboard

Player Settings

分辨率和呈现方式

前往 Project Settings >玩家 >分辨率和呈现方式

  1. 默认方向设置为横向横向 正确

其他设置

前往 Project Settings >玩家 >其他设置

  1. 相机使用情况说明中,写入 Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
  2. 目标最低 iOS 版本中,写入 12.0
  3. 软件包名称下指定您的公司网域。

XR 插件管理设置

前往 Project Settings >XR 插件管理

  1. 选择 Plug-in Providers(插件提供程序)下的 Cardboard XR Plugin

构建您的项目

转到文件 >构建设置

  1. 选择 BuildBuild and Run

正在重新置中

借助 Cardboard SDK,您可以 重新设置头部跟踪器的中心位置 Recenter()

请按照以下步骤使用示例应用进行尝试:

  1. 将设备移至您想要重新居中的位置(用作新外观) 前方头部姿势)。
  2. 按住 Cardboard 设备的触发器至少 3 秒钟。
  3. 松开触发器。
  4. 初始姿势现在朝向镜头所指向的方向。

开启和关闭 VR 模式

Unity XR 插件管理 API 可让您 为 Google Cardboard XR 插件 Unity。最终用户文档 Unity 的最终用户 文档

HelloCardboard 示例中的 VrMode 场景显示了 上述 API。在此场景中,您可以通过点按退出来关闭 VR 模式 ,且只需 点按屏幕上的任意位置查看 VrModeController.cs 详细了解具体的执行方式。

后续步骤