使用 Unity 的 XR SDK 插件系统实现跨平台操作

通过 Unity 的 XR.WSA(VR/AR Windows 应用商店应用)API 针对 HoloLens 系列设备进行 World Locking Tools 的初始开发。 这是通常称为 Unity 旧版 XR 接口或 Unity 内置 VR 支持的一部分。

自此,Unity 引入了其 XR 插件体系结构,其目标是提供跨平台抽象,使开发人员在可用的 VR 和 AR 设备间访问常见功能。

在此转换阶段,WLT 支持用于 HoloLens 的旧版 XR 接口和用于实现跨平台的 AR Subsystems/XR Plugin Management。 请注意,旧版 XR 接口自 Unity 2019 起已弃用,自 Unity 2020 起不再受支持。

WLT 目前支持适用于 Unity 2019.4 (LTS) 的 AR 子系统版本 2.X.Y 和适用于 Unity 2020.3 (LTS) 的 XR 插件管理版本 4.0.7 及更高版本。 后续版本中将推出对更多版本的支持。

将 WLT 切换到目标 XR SDK

锁定 XR SDK 的 WLT 非常简单。 首先,将项目配置为使用 XR 插件系统。

如果使用 MRTK,请按这些说明操作。 后文有其他提示和说明。

如果不使用 MRTK,请遵循这些稍微复杂一些的说明

无论哪种情况,最终都会安装并启用 Unity 的 XR Plug-in Management 系统,且安装并选择适合平台的 XR Plug-in provider

安装必要的资源后,更改场景中世界锁定上下文中的定位点子系统类型。

自动选择

运行脚本 Mixed Reality => World Locking Tools => Configure scene 将基于项目和场景的配置方式选择正确的定位点子系统。 可以放心地重复运行 Configure scene 脚本。 如果场景已正确配置,则不会进行更改。

手动选择

  1. 转到初始(或全局)场景中的 WorldLockingManager GameObject。
  2. 在检查器中,找到 WorldLockingContext
  3. 打开定位点管理设置。
  4. 确保未选中“使用默认值”复选框。
  5. 将定位点子系统类型更改为 XRSDK

如果项目和场景设置为使用 AR Foundation,请改为选择 AR Foundation 定位点子系统。 Azure 空间定位点示例展示的是使用 AR Foundation(目前是一项 ASA 要求)的正确配置。

The anchor management section of the context settings

在 XR SDK 上将 MRTK 与 WLT 配合使用

除了为在 VR 和 AR 中抽象用户交互提供了巨大价值外,MRTK 还极大地简化了通过 XR SDK 锁定设备的过程。 在设置 MRTK 以锁定特定设备时,下面的备注可能会很有帮助。

所有这些假设 WLT 定位点管理定位点子系统已正确设置,如上一部分所述。

更改插件目标时,请务必运行 Mixed Reality Toolkit => Utilities => UnityAR => Update Scripting Defines

安装 Windows XR 插件 (HoloLens)

请参阅 MRTK 和 XR SDK 入门中的完整说明。

如果在 WLT 项目中工作,首先可以使用 HoloLens2 上 WLT 提供的“WLT HL2 MRTKProfile”或移动设备上的“WLT AR MRTKProfile”。

WLT 使用 Windows XR 插件的情况已在 Unity 2019.4 和 Unity 2020.3 上经过测试,使用以下版本:

  • XR 插件管理:v3.2.16(预期与其配合使用的版本:v3.X.Y,X >= 2)
  • Windows XR 插件:v2.4.1(定位点在 v2.4.1 之前的版本损坏。预期运行版本 2.4.Y, Y>=1,v2.X.Y,X>=1)。
  • 混合现实 OpenXR 插件:v1.2.0(更早的版本也有效,但存在细微问题。强烈建议使用最新的 MR OpenXR 插件。)

只需要使用 Windows MR PluginMixed Reality OpenXR Plugin 中的一个。

安装 ARCore XR 插件 (Android)

若要获取驱动 MRTK AR 应用程序的 Android XR 插件,请按照如何为 iOS 和 Android 配置 MRTK 中的说明进行操作

注意:你需要以下各项:

  • XR 插件管理(已测试 v3.2.16,预期为 v3.X.Y,X>=2)。
  • AR 子系统(已测试 v2.1.3,预期为 v2.X.Y,X>1)。
  • AR Core XR 插件(已测试 v2.1.12,预期为 v2.X.Y,X>1)。
  • AR Foundation(已测试 v2.1.10,预期为 v2.X.Y,X>1)。

建议首先使用 WLT 提供的“WLT AR MRTKProfile”。

注意:如果收到有关清单合并失败的生成错误,请遵循适当的说明进行操作:https://developers.google.com/ar/develop/unity/android-11-build

安装其他 XR 插件(ARKit、Oculus 等)

其他平台的设置可能类似于 ARCore 的设置,但尚未经过测试。 如果你有权访问此类设备并有机会试用这些设备,任何反馈对社区都是有帮助的,并且非常珍贵。