操作指南

Unity 和 Android XR 使用入门

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

三星 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 模拟和测试工具。此外,自 Unity 6 于去年 11 月发布以来,您还将受益于其改进的 通用渲染管线 (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 项目中依次选择“文件”>“构建配置文件”来选择 build 配置文件。如需查看完整说明,请参阅 为 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 的性能,并解锁光线追踪和多线程等高级功能,从而实现逼真且沉浸式的游戏视觉效果。

这些标准为现有应用提供了最佳兼容性,并简化了移植问题和降低了移植成本。此外,它还支持启用 URP 应用空间变形注视点渲染等高级 Android XR 功能。

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

您可以依次前往“修改”>“项目设置”>“可执行游戏文件”>“Android 标签页”>“其他设置”>“图形 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 设备进行开发。


您选择哪个软件包取决于您的具体需求,但我们通常建议您选择 Unity OpenXR: Android XR,因为它能让您的应用兼容更多设备,从而为您提供更大的灵活性。然后,您可以根据应用要求添加 Android XR Extensions for Unity。

如何安装软件包

如需添加新软件包,请在 Unity 中打开项目,然后依次选择“窗口”>“软件包管理”>“软件包管理器”。

您可以在此处通过“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 设置:依次选择“修改”->“项目设置”->“XR 插件管理”-> 点击 Android 并启用 OpenXR

xrpluginmgmt.png

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

输入

Android XR 支持手部、语音、眼动追踪、键盘和控制器输入。我们建议您安装 XR Interaction ToolkitXR Hands,因为它们包含最适合入门的预制件。通过使用这些预制件,您将拥有在应用中支持手部和控制器所需的一切。

xrinteractiontoolkit.png

安装 XR Hands 和 XR Interactive 工具包后,我建议您导入 Starter Assets 和 Hands Interaction Demo。然后,您需要启用 Hand InteractionKhronos Simple Controller 配置文件,并开启 Hand Tracking Subsystem 和 Meta Hand Tracking Aim 功能。

您可以依次前往“修改”>“项目设置”>“XR 插件管理”>“OpenXR” 来修改这些设置

profiles.png

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

添加此预制件的最简单方法是从我们之前导入的手部集成演示中导入它,您可以在以下位置找到它:依次选择“Hands Integration Toolkit”>“Hand Interaction”>“Prefabs”>“XR Origin”

prefabs.png

我建议您在游戏对象中使用此预制件,而不是“XR Origin”选项,因为它使用 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 开发之旅:

继续学习的必要资源

可供探索的示例项目

作者:

继续阅读