使用 MRTK 设置新的 OpenXR 项目
为混合现实设置 Unity 项目的最简单方法是使用混合现实工具包 (MRTK)。 MRTK for Unity 是一个开源的跨平台开发工具包,旨在简化卓越的混合现实应用程序的构建。
MRTK 提供跨平台的输入系统、基础组件以及用于空间交互的通用构建基块。 它可以帮助你加快面向 Microsoft HoloLens、Windows Mixed Reality 沉浸式 (VR) 头戴显示设备和许多其他 VR/AR 设备的应用程序开发。 该项目旨在降低进入门槛,使每个人都能生成混合现实应用程序,并在我们共同成长的过程中回馈社区。
MRTK 支持各种平台,包括:
Microsoft HoloLens
Microsoft HoloLens 2
Windows Mixed Reality 头戴显示设备
OpenVR 头戴显示设备 (HTC Vive/Oculus Rift)
Ultraleap 手部跟踪
Android 和 iOS 设备
注意
我们最近推出了 MRTK3,这是 Unity 的第三代 Microsoft 混合现实工具包,建立在 Unity 的 XR 管理系统和 XR 交互工具包基础之上,可以更好地支持各种 OpenXR 兼容设备和新设计语言。 有关详细信息,请参阅 MRTK3 文档。
注意
要考虑的其他非 OpenXR 配置选项
Windows XR:Microsoft 不建议对 Unity 2020 中的任何新项目使用 Windows XR 插件。 而应使用混合现实 OpenXR 插件。 但是,如果你使用的是 Unity 2019,需要 AR Foundation 2.0 来兼容 ARCore/ARKit 设备,则可使用此插件来启用该支持。
重要
在 Unity 2019 中使用此插件与 Azure 空间定位点不兼容。
旧版 XR:
如果你仍在使用 “Unity 2019” 或更低版本,Microsoft 建议你使用“旧版内置 XR 支持”。 虽然 Windows XR 插件可在 Unity 2019 上正常运行,但我们不建议使用,因为它与 Unity 2019 上的 Azure 空间定位点不兼容。
如果要启动新项目,建议改为安装 Unity 2020 并使用混合现实 OpenXR 插件。
OpenXR 入门:创建新的 Unity 项目
启动 Unity Hub。
在“项目”选项卡中,单击“新建项目”。
单击“新建项目”下面的下拉列表,然后选择你需要的编辑器版本。
确保所选模板为 3D Core。
在“项目名称”框中,输入项目的名称,例如“MRTK 教程”。
在“位置”框中,单击文件夹图标,然后导航到要在其中保存项目的文件夹,然后选择它。 也可以新建一个文件夹。
单击“创建项目”。 这会在 Unity 中打开项目。
注意
在 Windows 上创建项目时,MAX_PATH 限制为 255 个字符。 Unity 受到这些限制的影响;如果任何文件路径的长度超过 255 个字符,就可能无法编译。 因此,建议将 Unity 项目存储在尽可能靠近驱动器根目录的位置。
设置生成目标
在菜单栏上,选择“文件”>“生成设置…”。
若要为 Windows Mixed Reality 生成应用,必须选择生成目标。 通用 Windows 平台 (UWP) 的生成设置将面向所有设备,包括 HP Reverb G2 等沉浸式头戴显示设备。 如果是为 HoloLens 2 生成的,这是最佳选择;但是,如果面向的是桌面 VR,我们建议使用“电脑、Mac 和 Linux 独立平台”。
执行下列操作之一:
如果面向的是 Desktop VR:
- 保留“电脑、Mac 和 Linux 独立平台”,该选项在新的 Unity 项目中默认处于选中状态:
如果目标是 HoloLens 2:
- 在“平台”下,选择“通用 Windows 平台”。 确保以下设置处于活动状态:
生成类型:D3D 项目
目标 SDK 版本:已安装最新版本
最低平台版本:10.0.10240.0
Visual Studio 版本:已安装最新版本
单击“切换平台”按钮。 Unity 在切换平台时会显示进度栏。
切换平台过程完成后,关闭“生成设置”窗口。
下载并安装混合现实功能工具
混合现实 OpenXR 插件以 Unity 包的形式提供。 发现、更新和导入功能包的最佳方法是使用混合现实功能工具。 你可以按名称或类别搜索包,查看其依赖项,以及在导入之前查看项目清单文件的建议更改。
请从 Microsoft 下载中心下载混合现实功能工具的最新版本。
下载完成后,导航到可执行文件 MixedRealityFeatureTool.exe,然后使用该文件启动混合现实功能工具。
导入混合现实工具包和 OpenXR 包
在混合现实功能工具中,选择“启动”。
选择“浏览”按钮(它是下图中的“三个点”按钮),导航到你的项目,然后将其打开。
注意
该工具中的“项目路径”框必须包含一个值,因此它会默认插入一个反斜杠(“_”)。
选择文件夹后,该工具会进行检查以确保它是有效的 Unity 项目文件夹。
选择“发现功能”。
注意:工具刷新源中的包时可能需要等待几秒钟。
在“发现功能”页上,请注意有 6 个包组的列表。
单击“混合现实工具包(0/10)”左侧的“+”按钮,然后选择“混合现实工具包基础版”的最新版本。
注意
“混合现实工具包基础”包是唯一的包,必须将它导入并进行配置后,才能在项目中使用 MRTK。 此包中有创建混合现实应用所需的核心组件。
单击“平台支持(0/5)”左侧的“+”按钮,然后选择“混合现实 OpenXR 插件”的最新版本。
做出选择后,请单击“获取功能”。
选择“验证”以验证所选的包。 应会看到一个对话框,显示“未检测到任何验证问题”。 完成后,单击“确定”。
在“导入功能”页上,左侧列的“功能”将显示你刚刚选择的包。 右侧列的“必需依赖项”显示所有依赖项。 可以单击其中任一项的“详细信息”链接,了解相关详细信息。
准备好继续时,选择“导入”。在“查看和批准”页上,可以查看有关包的信息。
选择“批准”。
返回到 Unity 编辑器,并单击 UI 中的空白区域。 你将看到一个进度栏,告知你正在导入你的包。
配置输入后端设置
在 Unity 导入包后,会显示一条警告,询问是否要通过重启编辑器来启用后端。 选择是。
通过项目验证针对 HoloLens 2 配置项目 (MR OpenXR 1.6+)
如果要面向桌面 VR 进行开发,请跳过本部分,转到针对桌面 VR 配置项目。
- 在菜单栏上,单击“混合现实”>“项目验证设置”>“HoloLens 2 应用程序(UWP)”,以启用针对 HoloLens 2 的验证规则。 对于版本 1.9 之前的 MR OpenXR 插件,可用的菜单项为“混合现实”>“项目”>“应用建议的 HoloLens 2 项目设置”。
- 在弹出的项目验证窗口中,确保位于“UWP 平台”选项卡(由 Windows 徽标指示),然后单击“全部修复”以解决验证问题。 请注意,单击“全部修复”后,可能仍存在问题。 在这种情况下,请尝试再次单击“全部修复”,忽略标记为“特定场景”的任何问题(如有),并浏览其余问题(如有),以查看是否有任何你想要采纳的建议的更改。
- 目前,该项目几乎已准备好进行 HoloLens 2 部署。 转到配置播放器设置,继续执行下一步。
手动针对 HoloLens 2 配置项目
如果要面向桌面 VR 进行开发,请跳过本部分,转到针对桌面 VR 配置项目。
确保已打开“项目设置”窗口。 如果未打开,请在菜单栏上选择“编辑”>“项目设置”。
在“项目设置”窗口中,确保位于“XR 插件管理”页面的“ 通用 Windows 平台”选项卡中。
确保已选中“在启动时初始化 XR”,然后在“插件提供者”下单击“OpenXR”。
此时将加载 OpenXR 插件,然后在“OpenXR”下显示多个项。 选择“Microsoft HoloLens 功能组”。
请注意,“OpenXR”旁边有一个黄色的警告三角形。 这表示你有不兼容的设置需要解决。 若要了解如何解决此问题,请跳过介绍如何配置 VR 的下一部分,转而访问以下部分:解决不兼容的设置。
通过项目验证针对桌面 VR 配置项目 (MR OpenXR 1.9+)
- 在菜单栏上,单击“混合现实”>“项目验证设置”>“Win32 应用程序(独立)”,以启用针对桌面 XR 应用的验证规则。
- 在弹出的项目验证窗口中,确保位于“独立平台”选项卡上,然后单击“全部修复”以解决验证问题。 请注意,单击“全部修复”后,可能仍存在问题。 在这种情况下,请尝试再次单击“全部修复”,忽略标记为“特定场景”的任何问题(如有),并浏览其余问题(如有),以查看是否有任何你想要采纳的建议的更改。
手动针对桌面 VR 配置项目
确保已打开“项目设置”窗口。 如果未打开,请转到菜单栏,选择“编辑”>“项目设置”。
在“项目设置”窗口中,确保位于“XR 插件管理”页面的“电脑、Mac 和 Linux 独立平台”选项卡中。
确保已选中“在启动时初始化 XR”,然后在“插件提供者”下单击“OpenXR”。
加载 OpenXR 插件,然后在“OpenXR”下方出现两个项目。 选择第一个,即“Windows Mixed Reality 功能组”。
请注意,现在 OpenXR 旁边有一个黄色的警告三角形。 这表示你有不兼容的设置需要解决。 若要了解如何解决此问题,请继续阅读下一部分:解决不兼容的设置。
解决不兼容的设置
重要
本部分中的图像显示了“通用 Windows 平台”选项卡中的选项。但是,除特别指出的情况外,“桌面 VR”选项卡的说明相同。
将光标悬停在“OpenXR”旁边的黄色警告三角形上,然后读取弹出窗口中的消息,然后选择相应的三角形。
在“OpenXR 项目验证”窗口中,列出了几个问题。 选择“全部修复”按钮。 注意:此列表可能有所不同,具体取决于你所在的选项卡。
一个问题仍然存在,并告诉你必须添加至少一个交互配置文件。 为此,请单击“编辑”。 这会转到“项目设置”窗口中“OpenXR”插件的设置。
在“交互配置文件”下方,请注意加号 (+) 按钮。
单击该按钮三次,每次选择不同的配置文件:
眼睛注视交互配置文件
Microsoft 手势交互配置文件
Microsoft 运动控制器配置文件
如果“眼睛凝视交互配置文件”或其他任何配置文件旁边出现黄色三角形,请选择该三角形,然后在“OpenXR 项目验证”窗口中,单击“修复”按钮。 完成后,关闭“OpenXR 项目验证”窗口。
在“项目设置”窗口的“OpenXR 功能组”下,确保选中以下各项:
如果你在“桌面 VR”选项卡中:
Windows Mixed Reality
手部跟踪
运动控制器模型
如果你在“通用 Windows 平台”选项卡中:
Microsoft HoloLens
手部跟踪
运动控制器模型
单击“深度提交模式”下拉列表,然后选择“深度 16 位”。
提示
将深度格式减少到 16 位是可选的,但这可能会提高项目中的图形性能。 若要了解详细信息,请参阅深度缓冲区共享 (HoloLens)。
注意
“呈现模式”设置位于“深度提交模式”上方,默认设置为“单通道实例化”。 在混合现实应用中,场景会渲染两次:为每只眼睛渲染一次。 结果是“立体视觉”。这会使必要的计算量翻倍,因此在 Unity 中选择最有效的渲染路径以节省 CPU 和 GPU 时间非常重要。 单通道实例化渲染是这里的最佳选择,我们建议默认为每个项目启用它。 若要详细了解此内容,请参阅 Unity 文档。
配置播放器设置
在“项目设置”窗口的左侧列中,选择“播放器”。
请注意,在“播放器”窗口中,已填充“产品名称”框。 这取自项目名称,并且将是在 HoloLens 开始菜单中显示的名称。
提示
为了使应用在开发期间更易于查找,请在名称前添加一个下划线,以将其排列到任何列表的顶部。
单击“发布设置”下拉列表,然后在“包名称”字段中输入合适的名称。
注意
包名称是应用的唯一标识符。 如果要避免覆盖以前安装的同名应用版本,则应在部署应用之前更改此标识符。
关闭“项目设置”窗口。
你现在已准备好开始通过 Unity 中的 OpenXR 进行开发!
Unity 示例项目
请查看 OpenXR 混合现实示例存储库中的示例 Unity 项目,这些示例项目展示了如何使用混合现实 OpenXR 插件为 HoloLens 2 或混合现实头戴显示设备生成 Unity 应用程序。