方法指南

Unity 和 Android XR 使用入门

阅读用时:6 分钟
Luke Hopkins
开发者关系工程师,Android

Samsung Galaxy XR 隆重登场,由 Android XR 提供支持!这篇博文是我们 “Android XR Spotlight Week” 的一部分,我们提供了各种资源(博文、视频、示例代码等),旨在帮助您学习、构建和准备 Android XR 应用。

现在是开始 XR 开发的最佳时机。去年 12 月,我们发布了 Android XR,这是 Google 基于 OpenXR 和 Vulkan 等开放标准构建的全新 Android 平台,可让开发者比以往更轻松地进行 XR 开发。


Unity 现有的 XR 工具结合使用时,您将获得强大而成熟的开发技术栈。这样一来,您就可以创建和部署可在多种设备上运行的 XR 应用。

openxr_face_tracking2.webp

无论您之前是否进行过 XR 开发,我们都希望帮助您入门。

这篇博文将帮助您开始使用 Android XR 和 Unity 进行开发。我们将重点介绍配置环境、了解软件包生态系统和开始构建的实用步骤。

在本博文结束时,您将对以下内容有很好的了解:

  • 软件包生态系统
  • 基本设置步骤
  • 输入法
  • 隐私权和权限
  • 合成层

Unity for Android XR 开发

您可能会选择 Unity,因为它具有跨平台兼容性,可让您构建一次便能部署到 Android XR 和其他 XR 设备。

使用 Unity 时,您可以受益于其成熟的 XR 生态系统和工具。它已经拥有成熟的软件包,例如 XR Interaction ToolkitOpenXR 插件XR 组合层XR Hands、包含大量可用于 XR 的组件和模板的资源商店,以及 XR 模拟和测试工具。自去年 11 月发布 Unity 6 以来,您还将受益于其改进的通用渲染管线 (URP) 性能、更好的 Vulkan 图形支持和增强的 build 配置文件。

以下是一些示例项目,可帮助您了解可以实现哪些功能:

基本设置:开发基础

Unity 6 要求和安装

您需要使用 Unity 6 来创建应用,因为更早的版本不支持 Android XR。首先安装 Unity Hub,然后按照这些步骤安装 Unity 6 和 Android Build Support 模块。

unity6.png

Android XR build 配置文件:简化配置

Unity build 配置文件是用于存储特定于平台的设置和配置的项目资源。因此,您无需在多个菜单中手动设置 15-20 种不同的设置,而是可以使用 build 配置文件自动完成此操作。
您可以创建自己的 build 配置文件,但目前我们建议您使用我们创建的专用 Android XR build 配置文件。

您可以从 Unity 项目中依次选择“File”>“Build Profile”来选择构建配置文件。如需查看完整说明,请参阅 为 Android XR 进行开发 工作流页面。

如果您自行进行了任何更改,则可以创建新的 build 性能分析报告,以便与团队分享。这样一来,您就可以确保在各个方面获得一致的 build 体验。

buildprofiles.png

完成这些步骤后,您就可以为 Android XR 设备构建并运行 APK 了。

图形 API:Vulkan 的重要性

在设置好包含 Android XR build 配置文件的 Unity 项目后,我们首先建议您确保已将 Vulkan 设置为图形 API。Android XR 是一个以 Vulkan 为先的平台。2025 年 3 月,Google 宣布 Vulkan 现在是 Android 的官方图形 API。它是一种现代化的低级图形 API,可帮助开发者最大限度地提升现代 GPU 的性能,并解锁光线追踪和多线程处理等高级功能,从而打造逼真且沉浸式的游戏画面。

这些标准可为现有应用提供最佳兼容性,并减少移植问题和费用。此外,它还支持启用高级 Android XR 功能,例如 URP 应用空间扭曲注视点渲染

Unity 6 会自动处理 Vulkan,因此当您使用 Android XR build 配置文件时,Unity 会将 Vulkan 配置为图形 API。这样可确保您无需进行任何手动配置,即可使用所有高级 Android XR 功能。

您可以依次前往“Edit”(编辑)>“Project Settings”(项目设置)>“Player”(可执行游戏文件)>“Android tab”(Android 标签页)>“Other settings”(其他设置)>“Graphics APIs”(图形 API),验证图形 API 设置。

appentrypoint.png

了解软件包生态系统

您可以在 Unity 中使用两种不同的 Android XR 软件包。一种是使用 Android XR Extensions for Unity,另一种是使用 Unity OpenXR:Android XR 软件包。

这两个概念可能听起来很相似,但请耐心听我说

Unity OpenXR:Android XR 软件包是用于支持 Android XR 的官方 Unity 软件包。它通过 OpenXR 标准提供大部分 Android XR 功能。它还支持集成 AR Foundation 以实现混合现实功能。使用 Unity OpenXR:Android XR 软件包的主要好处是,它提供了一个统一的 API 来支持 XR 设备。


Android XR Extensions for Unity 是 Google 的 XR 软件包,专为开发 Android XR 设备而设计。它通过环境混合模式、场景网格化、图像跟踪和身体跟踪等附加功能来补充 Unity OpenXR 软件包。但缺点是,您只能开发适用于 Android XR 设备的 AR 应用。


您选择哪一个取决于您的具体需求,但我们通常建议选择 Unity OpenXR: Android XR,因为这样一来,您的应用可以兼容的设备会更多,然后您可以根据应用要求添加 Android XR Extensions for Unity。

如何安装软件包

如需添加新软件包,请在 Unity 中打开项目,然后依次选择“Window”>“Package Management”>“Package Manager”。

您可以在“Unity 注册表”标签页中安装以下软件包:

packagemanager.png

您可以通过 GitHub 安装 Android XR for Unity 软件包,方法是选择 ➕ 图标,然后选择“Install package from git 网址”,接着输入“https://github.com/android/android-xr-unity-package.git”

packagemanager2.png

必需的 OpenXR 功能

现在,您已安装所需的软件包,接下来我们启用一些核心功能,以便项目正常运行。

您可以为 Android 启用 OpenXR 设置:“Edit”(编辑)->“Project Settings”(项目设置)->“XR Plugin Management”(XR 插件管理)-> 点击 Android 并启用 OpenXR

xrpluginmgmt.png

接下来,我们需要启用对“Android XR 支持”的支持,我们将在需要时介绍其他 OpenXR 功能。目前,我们只需要启用 Android XR 支持。

输入

Android XR 支持手势、语音、眼动追踪、键盘和控制器输入。我们建议安装 XR 交互工具包XR 手部,因为它们包含最适合入门的预制件。使用这些预制件,您将拥有在应用中支持手部和控制器的所有必要资源。

xrinteractiontoolkit.png

安装 XR Hands 和 XR Interactive 工具包后,建议导入初始资源和手部互动演示。然后,您需要启用手部互动Khronos 简单控制器配置文件,并开启手部跟踪子系统和 Meta 手部跟踪瞄准功能。

您可以前往“Edit”>“Project Settings”>“XR Plug-in Management”>“OpenXR”来修改这些设置

profiles.png

我们还建议使用 Unity 的预制件 XR Origin,它表示用户在 XR 空间中的位置和方向。此节点包含从正确视角渲染 XR 体验所需的相机装备和跟踪组件。

添加此预制件的最简单方法是从我们之前导入的手部集成演示中导入它,该演示可在以下位置找到:“Hands Integration Toolkit”(手部集成工具包)>“Hand Interaction”(手部互动)>“Prefabs”(预制件)>“XR Origin”(XR 原点)

prefabs.png

我建议您在游戏对象中使用此 Prefab,而不是“XR Origin”选项,因为此 Prefab 使用 XR Input Modality Manager,可在用户的手和控制器之间自动切换。这样可确保您在手和控制器之间切换时获得最佳效果。

隐私和权限:建立用户信任

无论您构建什么,都需要从用户那里获取运行时权限。这是因为场景理解、眼动追踪、面部跟踪和手部跟踪功能可访问对用户而言可能更敏感的数据。

这些功能提供的个人信息比传统的桌面应用或移动应用更深入,因此运行时权限可确保用户完全掌控自己选择共享的数据。因此,为了遵守 Android 的安全和隐私权政策,Android XR 为每项功能都设置了权限。

例如,如果您使用 XR Hands 软件包来实现自定义手势,则需要请求手部跟踪权限(见下文),因为此软件包需要跟踪大量与用户手部相关的信息。这包括跟踪手部关节姿势以及角速度和线速度;

注意:如需查看需要权限的扩展程序的完整列表,请访问 XR 开发者网站

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

使用合成图层提升视觉质量

建议使用合成层来渲染界面元素。与 Unity 的标准渲染流水线相比,它们能够以更高的质量显示元素,因为所有内容都直接渲染到平台的合成器。

例如,如果您要显示文字,标准 Unity 渲染更有可能导致文字模糊、边缘柔和以及出现视觉伪影。而使用合成图层时,文字会更清晰,轮廓会更清晰,整体体验也会更好。


除了文字之外,它还能以更高的质量呈现视频、图片和界面元素。它通过利用对运行时合成器层的原生支持来实现这一点。

如需启用合成图层,请打开资源包管理器,选择“Unity 注册表”,然后安装“XR 合成图层”。

构建并运行

现在,您已安装 OpenXR 软件包并启用了相关功能,还设置了手部和头部移动的预制件,接下来就可以构建场景并直接部署到头戴式设备进行测试了。

后续操作:拓展技能

现在,您已设置好 Android XR 开发环境并了解了关键概念,接下来可以执行以下步骤,继续您的 XR 开发之旅:

继续学习的必备资源

可供探索的示例项目

作者:

继续阅读