Microsoft Mixed Reality Toolkit 2.7 Release Notes

What's new in 2.7.2

Fixed a UPM package dependency issue

There is an issue with MRTK 2.7.1 UPM packages where the dependencies were not set up correctly. The issue caused the Mixed Reality Feature Tool to fail to import MRTK 2.7.1 packages properly. The issue is now resolved in 2.7.2. There is no code change in this version compared to 2.7.1.

What's new in 2.7.1

Show version

The Mixed Reality > Toolkit menu now contains a Show version... entry that examines the Mixed Reality Toolkit Foundation package to determine the version of MRTK that is being used by the project.

Show version menu

MRTK version dialog


If MRTK was cloned from the GitHub repository, the version information will not have been set.

Unable to determine version

Authors list

Starting with MRTK 2.7.1, the authors list file is included in the Mixed Reality Toolkit Foundation package.

Integrated OpenXR project setup into the Configurator setup flow

Starting with MRTK 2.7.1, users of the Mixed Reality OpenXR plugin will receive instructions on how to set up that plugin with MRTK. There is an option for users targeting HoloLens 2 to apply recommended settings automatically.

Configurator window with OpenXR setup instructions

Notable Bugfixes and Changes

  • Marked Unity Joystick Manager as supported on XR SDK pipeline #9954, #9994
  • Added checks to interactable inspector code to prevent null errors #9943
  • Add OpenXR mesh provider to pulse shader example scene #9902
  • Restore hand physics profile to example scene #9915
  • Some cleanup to the HandConstraint* scripts #9935
  • Fixed some bugs affecting creating and cloning profiles #9982

What's new in 2.7.0

OpenXR is now officially supported in MRTK

As the new OpenXR plugins are becoming more and more mature MRTK now officially supports OpenXR. Compared to previous releases we added the following capabilities to projects using OpenXR:

If you are targeting HoloLens 2 or Windows Mixed Reality headsets via OpenXR please make sure to install/update to Mixed Reality OpenXR plugin version 0.9.5 or later via Mixed Reality Feature Tool, otherwise you might miss some of the improvements above.

Legacy XR and XR SDK Data Providers can now be used within the same profile

Data providers will now also only be loaded when the appropriate pipeline is selected, allowing both Legacy XR and XR SDK data providers to co-exist within the same profile. To accommodate this, Legacy XR and XR SDK Data Providers are now organized under different tabs within the profile view, helping users determine whether they have the correct profile for their targeted XR pipeline.

Legacy and XR SDK data providers can now be unified under a single profile

To accommodate this, null data providers will now no longer be loaded and displayed in the profile inspector. Users can toggle Show null data providers in the profile inspector under Edit -> Project Settings -> Mixed Reality Toolkit to debug unexpected behaviors with missing data providers.

Null data providers are now hidden by default Toggle show null data providers in the profile inspector

Added Experience Settings and an associated Mixed Reality Scene Content behavior

Users can now configure Experience Settings, which will allow MRTK to display Mixed Reality Scene Content appropriately based on the targeted experience.

If user's previous Experience Scale settings do not match the new Experience Settings Profile, they will be prompted to correct it in the inspector

Experience Scale Migration

The Redesigned Configurator now guides the user through the setup process

The new MRTK configurator provides users step-by-step guidance to properly configure the project for XR development and use with MRTK. It covers the selection of XR pipeline, getting the platform specific plugins, importing TextMeshPro, displaying the examples (when using UPM) and other previously included recommended settings for the project.

Configurator showing the pipelines list

Graduated Teleport Hotspot

A new teleport hotspot component has been graduated. You can add a teleport hotspot to your GameObject to ensure that the user is in a certain position and orientation when they teleport to that location.

Teleport Hotspot example

Graduated Dwell

The dwell feature and example is now graduated from experimental. New examples of volumetric HoloLens 2 style buttons are included in the sample scene.

Dwell hero

Added support for Leap Motion Unity Modules version 4.6.0, 4.7.0, 4.7.1 and 4.8.0

Support for the latest versions of the Leap Motion Unity Modules is now compatible with MRTK 2.7.0. See How to Configure MRTK for Leap Motion for more information.

Big thanks to @jackyangzzh for contributing the new LeapMotionOrientationExample scene!

Targeted speech events raised no longer restricted to gaze pointers

Previously, targeted speech events could only be raised on objects which were focused on with the gaze pointer. Now, objects can receive speech events if they are focused by any pointer.

Speech Events with Far Pointers

Ported TextToSpeech from HTK to MRTK

The beloved TextToSpeech script is now finally available in MRTK to help you generate speech from text on the UWP platform using SpeechSynthesizer. Also added a sample scene to demonstrate the feature.

Support for the system-provided motion controller model on OpenXR

Added support, both in-editor and at runtime, for the system-provided motion controller model on OpenXR.

Editor window showing two motion controller models

Support for HoloLens 2 articulated hand mesh on OpenXR

The hand mesh running on-device in an MRTK example scene

Support for controller haptics across legacy WMR, Windows XR Plugin, and OpenXR

Added support for controller haptics across legacy WMR, Windows XR Plugin, and OpenXR. #9735

Support for eye tracking on Windows XR Plugin

Added support for eye gaze when using Windows XR Plugin minimum versions of 2.7.0 (Unity 2019), 4.4.2 (Unity 2020), and 5.2.2 (Unity 2021). #9609

Notable Bugfixes and Changes

  • Pinch detection made smoother. It is now harder to accidentally drop the pinch gesture. #9576
  • Objects with the Object Manipulator component now consistently maintain velocity on release when the flag is set. #9733
  • Back-strafing now checks for a floor, helping prevent situations where the camera can clip into the environment or where the user is left hovering over empty space.#9697
  • IsNearObject is now a virtual property, allowing more flexibility when extending the sphere or poke pointer. #9803
  • Buttons now display the proper keyword when showing the available speech command. #9824
  • Oculus Controllers now uses it's own standalone visualizer, preventing the MRTK visualization from clashing with the Oculus Integration Package's visualization. #9589
  • Keyboard related scripts have been changed to align with the behavior in latest Unity versions (2019.4.25+ & 2020.3.2+). As of the release there is still an auto-completion bug and a TMP Input Field bug (both are external to MRTK) impacting HoloLens. For more information please see #9056 and #9724.
  • Improved the performance of Scrolling Object Collection. Also fixed an issue causing GameObject within the collection to lose material when duplicated. #9813, #9718
  • In the Scene Understanding demo script, added the GetSceneObjectsOfType function to retrieve all observed scene object of a certain kind. #9524, #9744
  • In command line build tool, only scenes specified by the sceneList or sceneListFile flags (when any flag is present) will be included in the build. #9695
  • In build tool, there is a new option to specify a path to nuget.exe and use that to perform package restore instead of using msbuild (the default option). #9556
  • Fixed issue where using Windows XR Plugin could result in stale hand joints and doubled hand meshes. #9890
  • Fixed issue where using Windows XR Plugin's automatic remoting feature led to missing input and interactions. #9868
  • Fixed issue where the BuildDeployWindow would try to query an invalid reg key for the Windows SDK path. #9664
  • MRTK's glTF importers are now optional. If multiple glTF importers are present, MRTK's can be disabled by adding MRTK_GLTF_IMPORTER_OFF to the custom scripting define symbols. #9658
  • Fixed issue where the Knuckles controllers on OpenVR weren't being detected properly. #9881
  • Reduce the number of per-frame allocations when visualizing the hand mesh #9756
  • Added a menu item to launch the MRTK Examples package (in Unity Package Manager) to make it easier to import samples #9798
  • Reduced the number of load-time warnings when using Unity 2020.3.
  • Added Build Window feature documentation: Visit the page

Known Issues

Audio demos are missing an asmdef file (UPM package)

When importing MRTK via the Mixed Reality Feature Tool, samples and demos are added to the project using the Unity Package Manager UI. After importing the Audio demos, the WindowsMicrophoneStreamDemo.unity scene will not behave properly. This is a result of a missing .asmdef file for the sample.

To work around this issue, please perform the following steps:

  • Copy Library/PackageCache/[...]/MRTK.Examples.asmdef into your "Assets/Samples/Mixed Reality Toolkit Examples" folder
  • Rename the copied file to Examples
  • Open the Examples file
  • In the Name box, replace the contents with Examples
  • Click Apply
  • Build and deploy

This issue will be fixed in an upcoming MRTK release.

MRTK build window triggers indefinite "Importing assets" dialog in Unity 2020.3

There is a known issue with the MRTK build window on Unity 2020.3 where after successfully performing a UWP build, the "Importing assets" dialog does not complete. This issue is being investigated in partnership with Unity.

Text Mesh Pro Canvas Renderer warnings in Unity 2020

The following warning is logged in most MRTK example scenes while using Unity 2020:

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

The Canvas Renderer warning was added in TextMeshPro version 3.0.3. These warning do not have an impact on MRTK's example scenes and can be cleared from the console. See Issue 9811 for more details.