Microsoft 混合现实 Toolkit 2.7 发行说明

2.7.3 中的新增功能

雷德蒙德特别感谢

MRTK 团队衷心感谢你们,MRTK 社区。 你的贡献、反馈和投票帮助 MRTK 赢得了 2021 年 Auggie 最佳开发人员工具奖! 没有你的支持,我们就不会有今天的情况。 无论是添加新的平台支持、新功能、bug 修复、建议、问题还是你可能贡献的其他众多方式:谢谢!

2021 年 Auggie 奖最佳开发人员工具

Unity 2021 支持

通过 2.7.3 版本,我们可以更轻松地在 2021 Unity 2021 上构建! 如果在将 MRTK 与 Unity 2021 配合使用时发现任何问题,请在 GitHub 存储库中提出问题

通过远程处理支持的场景理解 (仅 OpenXR)

使用 OpenXR 平台在HoloLens 2上远程处理期间,现在可以使用场景理解。

MRTK 2.7.3 Bug 修复和更改

  • 停止了文件夹的创建, CustomProfiles 除非配置文件已克隆到该文件夹 #9916
  • 删除了对 GameObjects 的调用 .gameObject#9939
  • 修复了具有禁用组件的对象可能导致指针焦点锁定 的 bug #9945
  • 更新了 Unity 2021 #9938 的弃用方法和修复了编译器错误
  • 修复link.xml了 Unity 2021 #9942
  • 更新了按钮配置检查器以显示图标名称 #9972
  • 更新了控制器映射列表的标头和对齐方式 #9976
  • MRTK #9940 的分类Unity改进
  • 修复 了 BoundsControl 碰撞体问题和不一致 #9973
  • 修复了按钮图标集检查器 #9999
  • 固定 边界控制 比例句柄碰撞体对齐 #10007
  • 修复了 SDF 字体纹理分类 #10006
  • 修复 了 BoundsControl 自动平展和缩放手柄方向 #10013
  • 添加了 BoundsControl 平展修复 的反馈 #10016
  • 修复了动画播放过程中手部网格的奇怪变形 #10024
  • 修复了场景理解的日志记录 和 SpatialAwarenessSurfaceTypes#10026
  • 向 Leap 示例场景脚本添加了独立定义指令 #10036
  • 修复了编辑器中指定非默认激活类型时的 BoundsControlOnEnable 问题 #10039
  • 修复了 OpenGL ES 和 Metal 的无效着色器字节码错误 #10041
  • 添加了ClearProgressBar调用以修复 Unity 2020 上的生成窗口冻结 #10046
  • 更新了字体资产的序列化 #10047
  • 修复了手部交互场景,使其具有适当的捏合滑块碰撞体 #10060
  • 修复了 Surface 磁力四元数数学 #10074
  • 改进了 PV 相机版本消息 #10077
  • 修复了 BoundingBoxHelper.GetRawBoundsCorners 保护级别 #10093
  • 已将 gLTF 导入日志更新为一个日志而不是多个 #10090
  • 从没有 MRTK 的场景中删除了 MRSceneContent 脚本 #10091
  • 从示例场景中删除了基于包的事件系统,以便Unity 2018 兼容性 #10092
  • 删除了对预览版 Microsoft OpenXR 包 的支持 #10119
  • 修复了应用在接收数据时冻结 #10033
  • 修复了在没有 #10127 的情况下从碰撞体EyeTrackingTarget传递到碰撞体时不触发 OnLookAway 的修复问题EyeTrackingTarget
  • 更改了默认指针范围,使鼠标指针行为更直观 #10075
  • 更新了摘要以阐明 Initialize 何时运行 #10177
  • NullReferenceException修复了 #10190LinePointer的问题
  • 修复了包含非统一缩放问题的 BoundsControl#10133
  • 修复了在不同区域性中的 处理 IOSMinOSVersion#10178
  • 从启用眼睛凝视的对象中删除了额外的光线投射 #10162
  • 在 MixedRealityToolkit prefab #10180 的 编辑器 检查器中将鼠标悬停在各种配置文件上时添加了工具提示
  • 修复了 EyeTrackingExample 中的语音命令下拉列表和更新命令 #10197
  • 修复了加载Unity标准着色器时显示黑色的“gLTF”对象 #10209
  • 修复了UnityTouchDeviceManager 当 属性为 false 时 IsEnabled 更新自身 #10203
  • 更新了按钮配置帮助程序中的属性名称 #10221
  • 修复了对象导出器中的坐标空间、缠绕顺序和区域性格式 设置 #10208
  • 添加了将抓握点移动到指尖的选项 #10206
  • 添加了对 Leap UnityModules 4.9.1 #10282 的支持
  • 向后移植了 #10280 的一些小更改ReserializeAssetsUtility.cs
  • 已将 不正确的用法 enumValueIndex 转换为 intValue#10274
  • 修复了近距作期间对象偏移 问题 #10294
  • 修复了边界控制会主动删除其他组件的情况 #10296
  • 修复了闪烁邻近照明 #10325
  • 添加了检查,用于在确定触发这些事件之前查看是否有任何内容被挂接到事件 #10330
  • 更改了各种小项 #10316
  • 引入了 HasFlag #10319 的替代项
  • 减少 HandConstraint 求解器调试日志垃圾邮件 #10331
  • 修复了来自 HandConstraintPalmUp.cs#10326 的日志垃圾邮件
  • 通过 OpenXR 启用全息远程处理场景理解 #10338
  • 向 InteractableOnClickReceiver 添加了无参数构造函数 #10353
  • FingerChaser prefab 移动到示例包中的 Common 文件夹 #10358
  • 在 OpenXR 上添加了关节手选择的回退用例 #10359
  • 修复了 Windows 麦克风流演示 UPM 导入问题 #10362
  • 已重命名的 OpenXR 配置文件 #10363
  • 使用 Unity 2021 改进了光线投射命中日志输出,并修复了使用 AssetBundles 时崩溃 #10370
  • 将字符串更新为 const 和缓存类型以减少分配 #10369
  • 修复了使用基于应用的全息远程处理时基于 XRSDK 的网格观察程序 #10366
  • 集成的 Oculus 可视化 效果 #10067
  • 添加了 BoundsControl 属性 的文档 #10361
  • 固定手关节追逐器预制 件 #10377
  • 修复了 Oculus Quest 10374 的部署错误
  • 修复了场景理解示例场景配置文件 #10368 的问题
  • 修复了在最新版本的 Unity 2021.2 #10182 中导入时出现的 MRTK 控制台错误
  • 添加了有关如何更改游标的缺失文档 #4934
  • 改进了 MRTK Unity包发布页上的说明,使其更清晰 #9575
  • 修复了 MicStream 选择演示场景未处理语音 (UPM 包) #9908 的问题
  • 修复了无法在 MRTK 示例包中单独导入示例 的问题 #10216
  • 为某些属性添加了 BoundsControl 缺少文档 #10346
  • 修复了无法将 InteractableOnClickReceiver 添加到具有可交互组件的游戏对象 #10341 的 bug

2.7.2 中的新增功能

修复了 UPM 包依赖项问题

MRTK 2.7.1 UPM 包存在一个问题,其中依赖项未正确设置。 此问题会导致混合现实功能工具无法正确导入 MRTK 2.7.1 包。 此问题现已在 2.7.2 中得到解决。 与 2.7.1 相比,此版本中没有代码更改。

2.7.1 中的新增功能

显示版本

“混合现实>工具包”菜单现在包含“显示版本...”条目,用于检查 混合现实 Toolkit Foundation 包以确定项目正在使用的 MRTK 版本。

显示版本菜单

MRTK 版本对话框

注意

如果从 GitHub 存储库克隆 MRTK,则不会设置版本信息。

无法确定版本

作者列表

从 MRTK 2.7.1 开始,作者列表文件包含在 混合现实 Toolkit Foundation 包中。

将 OpenXR 项目设置集成到 Configurator 设置流中

从 MRTK 2.7.1 开始,混合现实 OpenXR 插件的用户将收到有关如何使用 MRTK 设置该插件的说明。 有一个选项可供面向HoloLens 2的用户自动应用建议的设置。

带有 OpenXR 设置说明的配置器窗口

值得注意的 Bug 修复和更改

  • Unity游戏杆管理器标记为 XR SDK 管道支持 #9954#9994
  • 添加了对可交互检查器代码的检查,以防止 null 错误 #9943
  • 将 OpenXR 网格提供程序添加到脉冲着色器示例场景 #9902
  • 将手部物理配置文件还原到示例场景 #9915
  • 对脚本进行 HandConstraint 一些清理 #9935
  • 修复了影响创建和克隆配置文件的一些 bug #9982

2.7.0 中的新增功能

MRTK 现在正式支持 OpenXR

随着新的 OpenXR 插件越来越成熟,MRTK 现在正式支持 OpenXR。 与以前的版本相比,我们在使用 OpenXR 的项目中添加了以下功能:

如果通过 OpenXR 面向HoloLens 2或Windows Mixed Reality头戴显示设备,请确保通过混合现实功能工具安装/更新 混合现实 OpenXR 插件版本 0.9.5 或更高版本,否则可能会错过上述一些改进。

旧版 XR 和 XR SDK 数据提供程序现在可以在同一配置文件中使用

现在,仅当选择了适当的管道时,才会加载数据提供程序,从而允许旧版 XR 和 XR SDK 数据提供程序并存在同一配置文件中。 为了适应这种情况,旧版 XR 和 XR SDK 数据提供程序现在组织在配置文件视图中的不同选项卡下。 此组织应帮助确定是否为目标 XR 管道选择了正确的配置文件。

旧版和 XR SDK 数据提供程序现在可以在单个配置文件下统一

为了适应这种情况,空数据提供程序现在将不再加载并在配置文件检查器中显示。 用户可以在“编辑 -> 项目设置 -> 混合现实工具包”下切换Show null data providers in the profile inspector,以调试缺少数据提供程序的意外行为。

空数据提供程序现在默认处于隐藏 状态 切换在配置文件检查器中显示 null 数据提供程序

添加了体验设置和关联的混合现实场景内容行为

用户现在可以配置体验设置,这将允许 MRTK 根据目标体验适当地显示混合现实场景内容

如果用户以前的体验规模设置与新的体验设置配置文件不匹配,系统会提示他们在检查器中更正它。

体验缩放迁移

重新设计的配置器现在指导用户完成设置过程

新的 MRTK 配置器为用户提供了分步指南,以正确配置项目进行 XR 开发并与 MRTK 配合使用。 它介绍了 XR 管道的选择、获取特定于平台的插件、导入 TextMeshPro、显示使用 UPM) 时 (的示例,以及项目之前包含的其他建议设置。

显示管道列表的配置器

分级传送热点

新的 传送热点组件 已毕业。 你可以向你的 GameObject 添加传送热点,以确保用户在传送到该位置时处于特定位置和方向。

传送热点示例

Graduated Dwell

停留功能和示例现已从实验阶段毕业。 示例场景中包括体积HoloLens 2样式按钮的新示例。

停留英雄

添加了对 Leap Motion Unity模块版本 4.6.0、4.7.0、4.7.1 和 4.8.0 的支持

对最新版本的 Leap Motion Unity 模块的支持现在与 MRTK 2.7.0 兼容。 有关详细信息,请参阅 如何为 Leap Motion 配置 MRTK

非常感谢贡献 @jackyangzzh 新 LeapMotionOrientationExample 场景!

引发的目标语音事件不再仅限于凝视指针

以前,目标语音事件只能在使用凝视指针聚焦的对象上引发。 现在,如果对象被任何指针聚焦,则可以接收语音事件。

具有远指针的语音事件

TextToSpeech已从 HTK 移植到 MRTK

心爱的 TextToSpeech 脚本现在终于在 MRTK 中可用,以帮助你使用 SpeechSynthesizer从 UWP 平台上的文本生成语音。 还添加了一个示例场景来演示该功能。

支持 OpenXR 上系统提供的运动控制器模型

添加了对 OpenXR 上系统提供的运动控制器模型的编辑器内和运行时支持。

显示两个运动控制器模型的编辑器窗口

在 OpenXR 上支持HoloLens 2关节手网格

在 MRTK 示例场景中在设备上运行的手部网格

支持跨旧版 WMR、Windows XR 插件和 OpenXR 的控制器触觉

添加了对旧版 WMR、Windows XR 插件和 OpenXR 的控制器触觉的支持。 #9735

支持 Windows XR 插件上的眼动跟踪

添加了对使用 Windows XR 插件最低版本 2.7.0 (Unity 2019) 、4.4.2 (Unity 2020) 和 5.2.2 (Unity 2021) 的支持。 #9609

值得注意的 Bug 修复和更改

  • 收缩检测更流畅。 现在更难意外地放弃收缩手势。 #9576
  • 设置标志时,具有 Object控器组件的对象现在始终保持释放速度。 #9733
  • 后层现在检查地板,有助于防止相机可以剪辑到环境中或用户悬停在空白区域的情况。#9697
  • IsNearObject 现在是一个虚拟属性,允许在扩展球体或 poke 指针时更加灵活。 #9803
  • 显示可用的语音命令时,按钮现在会显示正确的关键字 (keyword) 。 #9824
  • Oculus 控制器现在使用自己的独立可视化工具,防止 MRTK 可视化效果与 Oculus 集成包的可视化效果冲突。 #9589
  • 与键盘相关的脚本已更改,以符合最新Unity版本中的行为, (2019.4.25+ & 2020.3.2+) 。 截至发布时,仍存在自动完成 bug 和 TMP 输入字段 bug, (这两者都位于 MRTK 外部,) 影响 HoloLens。 有关详细信息,请参阅 #9056#9724
  • 改进了滚动对象集合的性能。 还修复了在复制时导致 GameObject 集合内材料丢失的问题。 #9813#9718
  • 在场景理解演示脚本中,添加了 GetSceneObjectsOfType 用于检索特定类型的所有观察到的场景对象的函数。 #9524#9744
  • 在命令行生成工具中,当存在任何标志时,只有 或 sceneListFile 标志指定的sceneList场景 () 才会包含在生成中。 #9695
  • 在生成工具中,有一个新选项用于指定 路径 nuget.exe ,并使用它执行包还原,而不是使用 msbuild (默认选项) 。 #9556
  • 修复了使用 Windows XR 插件可能导致手部关节陈旧和双手网格翻倍的问题。 #9890
  • 修复了使用 Windows XR 插件的自动远程处理功能导致缺少输入和交互的问题。 #9868
  • 修复了尝试查询 Windows SDK 路径的无效 reg 键的问题 BuildDeployWindow#9664
  • MRTK 的 glTF 导入程序现在是可选的。 如果存在多个 glTF 导入程序,可以通过将 MRTK_GLTF_IMPORTER_OFF 添加到自定义脚本定义符号来禁用 MRTK。 #9658
  • 修复了未正确检测到 OpenVR 上的 Knuckles 控制器的问题。 #9881
  • 在可视化手部网格时减少每帧分配数 #9756
  • 在 Unity 包管理器) 中添加了启动 MRTK 示例包 (的菜单项,以便更轻松地导入示例 #9798
  • 减少了使用 Unity 2020.3 时的加载时警告数。
  • 添加了生成窗口功能文档: 访问页面

已知问题

音频演示缺少 asmdef UPM 包 (文件)

通过 混合现实 功能工具导入 MRTK 时,将使用 Unity 包管理器 UI 将示例和演示添加到项目中。 导入音频演示后, WindowsMicrophoneStreamDemo.unity 场景将无法正常运行。 此行为是示例缺少 asmdef 文件的结果。

若要 解决此问题,请执行以下步骤

  • 复制库/PackageCache/com.microsoft.mixedreality.toolkit.examples@[...]/MRTK。Examples.asmdef 到“Assets/Samples/混合现实 Toolkit Examples”文件夹中
  • 将复制的文件重命名为示例
  • 打开示例文件
  • 在“名称”框中,将内容替换为“示例”
  • 单击“应用”
  • 生成和部署

此问题将在即将发布的 MRTK 版本中得到修复。

MRTK 生成窗口在 Unity 2020.3 中触发无限期的“导入资产”对话框

Unity 2020.3 上的 MRTK 生成窗口存在一个已知问题,即 UWP 生成后“导入资产”对话框未完成。 正在通过 Unity 调查此问题。

Unity 2020 年的文本网格 Pro 画布呈现器警告

使用 Unity 2020 时,大多数 MRTK 示例场景中记录了以下警告:

Please remove the `CanvasRenderer` component from the [TextMeshPro] GameObject as this component is no longer necessary.

TextMeshPro 版本 3.0.3 中添加了画布呈现器警告。 这些警告对 MRTK 的示例场景没有影响,可以从控制台中清除。 有关详细信息,请参阅 问题 9811