Microsoft 混合现实工具包 2.6 发行说明

重要

存在一个已知的编译器问题,该问题会影响使用 ARM64 为 Microsoft HoloLens 2 构建的应用程序。 此问题可通过将 Visual Studio 2019 更新到版本 16.8 或更高版本得以解决。 如果无法更新 Visual Studio,请导入 com.microsoft.mixedreality.toolkit.tools 包以应用替代方法。

2.6.2 中的新增功能

修正空间网格的父级

修复了在移动混合现实游戏空间对象(例如通过传送)后空间网格无法正确定位的问题

2.6.1 中的新增功能

修复了 OpenXR 不能在 HoloLens 2/UWP 上运行的问题

修复了阻止 MRTK 的 OpenXR 支持在 UWP 上运行的回归问题。

修复了 Leap Motion ObjectManipulator 不能旋转的问题

修复了 ObjectManipulator 脚本未考虑 Leap Motion 手旋转的回归问题。

示例场景更新

更新了场景理解示例场景,以正确反映 Unity 插件的已发布状态。 还更新了示例,使其不再依赖于要导入的空间感知示例场景。 在更新到 2.6.1 之前,应删除已导入的场景理解和空间感知示例(如果它们存在于你的项目中),以避免可能的冲突。 如果你没有删除这些示例,并且在控制台中确实看到与这些示例相关的冲突,请删除这两个示例(或 Assets/Samples/Mixed Reality Toolkit Examples 文件夹),然后再次尝试导入。

更新了对话框示例场景,以正确描述当前对话框场景。

2.6.0 中的新增功能


添加了对 OpenXR 的支持

添加了对 Unity 的 OpenXR 预览包和 Microsoft 的混合现实 OpenXR 包的初始支持。 有关详细信息,请参阅 MRTK/XRSDK 入门页Unity 论坛文章Microsoft 文档

重要

Unity 中的 OpenXR 仅在 Unity 2020.2 及更高版本上受支持。

目前,它也只支持 x64 和 ARM64 版本。

资产交换实用工具

使用新的资产交换实用工具在 Unity 场景中交换多个资产。

MRTK 现在支持 HP 运动控制器

HP Reverb G2 控制器现在可以在 MRTK 中以原生方式运行。

试验性交互式元素 + 状态可视化工具

交互式元素是 MRTK 输入系统的一个简化的集中式入口点。 它包含核心交互状态的状态管理方法、事件管理和状态设置逻辑。 有关详细信息,请参阅交互式元素文档

InteractiveElementAddCoreState

状态可视化工具是一种依赖于交互式元素的动画组件。 这种组件可创建动画剪辑、设置关键帧并生成动画程序状态机。 有关详细信息,请参阅状态可视化工具文档

StateVisualizerColorChangeOnFocus

现在所有平台都支持用传送手势进行传送

用户现在可以使用传送手势在所有平台上移动他们的游戏空间。 若要在具有默认配置的 MR 设备上通过控制器进行传送,请使用操纵杆。 若要用关节手传送,请做出掌心上向上、食指和拇指向外的手势,通过弯曲食指完成传送。 若要通过输入模拟传送,请参阅已更新的输入模拟服务文档

Teleport Gesture

场景理解现在可在 MRTK 中作为试验性空间感知观察程序提供

MRTK 2.6 中引入了对场景理解的试验性支持。 用户可以将 HoloLens 2 的场景理解功能作为一个空间感知观察程序纳入基于 MRTK 的项目中。 有关详细信息,请阅读场景理解文档

重要

场景理解仅在 HoloLens 2 和 Unity 2019.4 及更高版本上受支持。

此功能需要场景理解包,现在可通过混合现实功能工具获得。 使用混合现实功能工具或通过 UPM 导入时,由于存在一个依赖性问题,请先导入演示 SpatialAwareness 示例,然后再导入试验性 SceneUnderstanding 示例。 有关详细信息,请参阅此 GitHub 问题

Scene Understanding

运行时配置文件切换支持

MRTK 现在允许在 MRTK 实例初始化之前(即 MRTK 初始化之前的配置文件切换)和在配置文件被激活使用之后(即主动配置文件切换)进行配置文件切换。 前一种切换可用来根据硬件的能力启用选定的组件,而后一种切换可用来在用户进入应用程序的一个子部分时修改体验。 有关更多信息和代码示例,请阅读有关配置文件切换的文档

已完成试验阶段的方向指示器和跟踪求解器

这两个新的求解器现在可与主线 MRTK 一起使用。

Directional Indicator Solver

已完成试验阶段的手部指导

“手部指导”功能现在可与主线 MRTK 一起使用。

Hand Coach Example

已完成试验阶段的对话框控件

对话框控件现在可与主线 MRTK 一起使用。

Dialog Controls

已完成试验阶段的脉冲着色器

脉冲着色器脚本已完成试验阶段。 有关详细信息,请参阅:脉冲着色器文档

MRTK_SpatialMesh_Pulse

输入录制服务的改进

InputRecordingServiceInputPlaybackService 现在可以录制和回放眼睛凝视输入。 录制已进行了优化,以确保在整个录制期间保持一致的帧速率,同时录制文件的大小和保存时间也减少了约 50%。 现在可以异步执行录制文件的保存和加载。 注意此 MRTK 版本中录制的文件格式已更改,请参阅此处,了解有关新版本 1.1 规范的详细信息。

读取模式

在 HoloLens 2 上添加了对读取模式的支持。 读取模式缩小了系统的视野,但消除了 Unity 的输出缩放。 Unity 呈现的像素将与 HoloLens 2 上的投影像素相对应。 应用程序作者应对多个用户进行测试,确保这是他们在应用中想要的权衡。

Windows Mixed Reality reading mode

对 UWP 上的 3D 应用启动器的支持

添加了设置适用于 UWP 的 3D 应用启动器的功能。 此设置在 MRTK 生成窗口和 MRTK 项目设置的“生成设置”下都会显示。 在 Unity 的生成过程中,会自动将此设置写入项目。

Build settings

中断性变更

导入的 GLTF 对象的某些字段现在是大写形式

由于反序列化的相关问题,导入的 GLTF 对象的某些字段现在以大写字母开头。 受影响的字段包括(使用其新名称):ComponentTypePathInterpolationTargetTypeModeMagFilterMinFilterWrapSWrapT

输入动画二进制文件有一个更新的版本 1.1 格式

InputRecordingServiceInputPlaybackService 使用的输入动画二进制文件现在提供一个更新的文件格式,以实现对这两个服务的优化。 有关新版本 1.1 规范的详细信息,请参阅此处

MSBuild for Unity 支持

2.5.2 版中已删除对 MSBuild for Unity 的支持,以便与 Unity 的新包指南保持一致。

已知问题

OpenXR

目前存在一个与全息远程处理和 OpenXR 有关的已知问题,即手部关节不能持续使用。 此外,眼动跟踪示例场景当前不兼容,但眼动跟踪仍有效。

一些混合现实工具包标准着色器功能需要基础包

通过 Unity 程序包管理器导入时,MRTK 标准着色器实用工具脚本(例如:HoverLight.cs)没有与标准资产包中的着色器放在一起。 若要访问此功能,应用程序需要导入基础包。

CameraCache 可能会在关闭时创建新的相机

在某些情况下(例如,在 Unity 编辑器中使用 LeapMotion 提供程序时),CameraCache 可能会在关闭时重新创建 MainCamera。 有关详细信息,请参阅此问题

通过 Unity 包管理器导入示例时出现 FileNotFoundException

根据项目路径的长度,通过 Unity 包管理器导入示例可能会在 Unity 控制台中生成 FileNotFoundException 消息。 造成这种情况的原因是丢失文件的路径长于 MAX_PATH(256 个字符)。 要解决此问题,请缩短项目路径的长度。

未指定空间音响。 应用程序将不支持空间音效

如果未配置音频空间音响,则会出现“未指定空间音响”警告。 如果没有安装 XR 包,就会发生这种情况,因为 Unity 在这些包中包含空间音响。

要解决此问题,请确保:

  • “窗口”>“包管理器”中安装了一个或多个 XR 包

  • 转到“混合现实工具包”>“实用工具”>“配置 Unity 项目”,并选择“音频空间音响”

    Select Audio Spatializer

NullReferenceException:对象引用未设置为对象 (SceneTransitionService.Initialize) 的实例

在某些情况下,打开 EyeTrackingDemo-00-RootScene 可能会导致 SceneTransitionService 类的 Initialize 方法出现 NullReferenceException。 此错误是由于未设置场景转换服务的配置文件。 若要解决此问题,请使用以下步骤:

  • 导航到层次结构中的 MixedRealityToolkit 对象
  • 在“检查器”窗口中,选择“Extensions
  • 如果未展开 Scene Transition Service,请将其展开
  • Configuration Profile 值设置为 MRTKExamplesHubSceneTransitionServiceProfile

Fix Scene Transition Profile

Oculus Quest

当前,在面向独立版平台时使用 Oculus XR 插件有一个已知问题。 查看 Oculus bug tracker/forums/release notes,了解更新。

此 bug 表示为以下 3 个错误:

Oculus XR Plugin Error

UnityUI 和 TextMeshPro

较新版本的 TextMeshPro(1.5.0+ 或 2.1.1+)存在一个已知问题,即下拉列表和粗体字符间距的默认字体大小已更改。

TMP image

可通过降级到早期版本的 TextMeshPro 来解决此问题。 有关更多详细信息,请参阅问题 #8556