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 输入系统的一个简化的集中式入口点。 它包含核心交互状态的状态管理方法、事件管理和状态设置逻辑。 有关详细信息,请参阅交互式元素文档。
状态可视化工具是一种依赖于交互式元素的动画组件。 这种组件可创建动画剪辑、设置关键帧并生成动画程序状态机。 有关详细信息,请参阅状态可视化工具文档
现在所有平台都支持用传送手势进行传送
用户现在可以使用传送手势在所有平台上移动他们的游戏空间。 若要在具有默认配置的 MR 设备上通过控制器进行传送,请使用操纵杆。 若要用关节手传送,请做出掌心上向上、食指和拇指向外的手势,通过弯曲食指完成传送。 若要通过输入模拟传送,请参阅已更新的输入模拟服务文档。
场景理解现在可在 MRTK 中作为试验性空间感知观察程序提供
MRTK 2.6 中引入了对场景理解的试验性支持。 用户可以将 HoloLens 2 的场景理解功能作为一个空间感知观察程序纳入基于 MRTK 的项目中。 有关详细信息,请阅读场景理解文档。
重要
场景理解仅在 HoloLens 2 和 Unity 2019.4 及更高版本上受支持。
此功能需要场景理解包,现在可通过混合现实功能工具获得。 使用混合现实功能工具或通过 UPM 导入时,由于存在一个依赖性问题,请先导入演示 SpatialAwareness 示例,然后再导入试验性 SceneUnderstanding 示例。 有关详细信息,请参阅此 GitHub 问题。
运行时配置文件切换支持
MRTK 现在允许在 MRTK 实例初始化之前(即 MRTK 初始化之前的配置文件切换)和在配置文件被激活使用之后(即主动配置文件切换)进行配置文件切换。 前一种切换可用来根据硬件的能力启用选定的组件,而后一种切换可用来在用户进入应用程序的一个子部分时修改体验。 有关更多信息和代码示例,请阅读有关配置文件切换的文档。
已完成试验阶段的方向指示器和跟踪求解器
这两个新的求解器现在可与主线 MRTK 一起使用。
已完成试验阶段的手部指导
“手部指导”功能现在可与主线 MRTK 一起使用。
已完成试验阶段的对话框控件
对话框控件现在可与主线 MRTK 一起使用。
已完成试验阶段的脉冲着色器
脉冲着色器脚本已完成试验阶段。 有关详细信息,请参阅:脉冲着色器文档
输入录制服务的改进
InputRecordingService
和 InputPlaybackService
现在可以录制和回放眼睛凝视输入。 录制已进行了优化,以确保在整个录制期间保持一致的帧速率,同时录制文件的大小和保存时间也减少了约 50%。 现在可以异步执行录制文件的保存和加载。 注意此 MRTK 版本中录制的文件格式已更改,请参阅此处,了解有关新版本 1.1 规范的详细信息。
读取模式
在 HoloLens 2 上添加了对读取模式的支持。 读取模式缩小了系统的视野,但消除了 Unity 的输出缩放。 Unity 呈现的像素将与 HoloLens 2 上的投影像素相对应。 应用程序作者应对多个用户进行测试,确保这是他们在应用中想要的权衡。
对 UWP 上的 3D 应用启动器的支持
添加了设置适用于 UWP 的 3D 应用启动器的功能。 此设置在 MRTK 生成窗口和 MRTK 项目设置的“生成设置”下都会显示。 在 Unity 的生成过程中,会自动将此设置写入项目。
中断性变更
导入的 GLTF 对象的某些字段现在是大写形式
由于反序列化的相关问题,导入的 GLTF 对象的某些字段现在以大写字母开头。 受影响的字段包括(使用其新名称):ComponentType
、Path
、Interpolation
、Target
、Type
、Mode
、MagFilter
、MinFilter
、WrapS
、WrapT
。
输入动画二进制文件有一个更新的版本 1.1 格式
InputRecordingService
和 InputPlaybackService
使用的输入动画二进制文件现在提供一个更新的文件格式,以实现对这两个服务的优化。 有关新版本 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 项目”,并选择“音频空间音响”
NullReferenceException:对象引用未设置为对象 (SceneTransitionService.Initialize) 的实例
在某些情况下,打开 EyeTrackingDemo-00-RootScene
可能会导致 SceneTransitionService 类的 Initialize 方法出现 NullReferenceException。
此错误是由于未设置场景转换服务的配置文件。 若要解决此问题,请使用以下步骤:
- 导航到层次结构中的
MixedRealityToolkit
对象 - 在“检查器”窗口中,选择“
Extensions
” - 如果未展开
Scene Transition Service
,请将其展开 - 将
Configuration Profile
值设置为 MRTKExamplesHubSceneTransitionServiceProfile
Oculus Quest
当前,在面向独立版平台时使用 Oculus XR 插件有一个已知问题。 查看 Oculus bug tracker/forums/release notes,了解更新。
此 bug 表示为以下 3 个错误:
UnityUI 和 TextMeshPro
较新版本的 TextMeshPro(1.5.0+ 或 2.1.1+)存在一个已知问题,即下拉列表和粗体字符间距的默认字体大小已更改。
可通过降级到早期版本的 TextMeshPro 来解决此问题。 有关更多详细信息,请参阅问题 #8556。