Microsoft Mixed Reality Toolkit 2.7 Release Notes
What's new in 2.7.3
A special thanks from Redmond
The MRTK team would like to extend a warm thanks to you, the MRTK community. Your contributions, feedback, and votes have helped MRTK win the 2021 Auggie Award for Best Developer Tool! Without your support, we wouldn't be where we are today. Whether it's adding new platform support, new features, bug fixes, suggestions, questions, or any of the other numerous ways you might have contributed: Thank you!
Unity 2021 support
We've made it easier to build on Unity 2021 with the release of 2.7.3! If you find any issues while using MRTK with Unity 2021, file an issue on our GitHub repository.
Scene Understanding via Remoting support (OpenXR Only)
Scene Understanding is now available during remoting on the HoloLens 2 with OpenXR platform.
MRTK 2.7.3 Bugfixes and Changes
- Stopped the creation of a
CustomProfilesfolder unless a profile has been cloned to that folder #9916
- Removed calls to
.gameObjecton GameObjects #9939
- Fixed a bug where objects with disabled components could cause pointers to become focus locked #9945
- Updated deprecated methods and fixed compiler errors for Unity 2021 #9938
link.xmlfor Unity 2021 #9942
- Updated button config inspector to show icon names #9972
- Updated controller mapping list's header and alignment #9976
- Assorted Unity improvements for MRTK #9940
- Fixed BoundsControl collider issues and inconsistency #9973
- Fixed the button icon set inspectors #9999
- Fixed BoundsControl scale handle collider alignment #10007
- Fixed SDF font texture categorizing #10006
- Fixed BoundsControl auto-flatten and scale handle orientation #10013
- Added feedback for BoundsControl flattening fix #10016
- Fixed strange deformations with hand mesh during animation playback #10024
- Fixed logging and
SpatialAwarenessSurfaceTypesfor Scene Understanding #10026
- Added a Standalone define directive to Leap example scene script #10036
- Fixed BoundsControl
OnEnableissue when non-default activation type specified in-editor #10039
- Fixed invalid shader bytecode errors for OpenGL ES and Metal #10041
ClearProgressBarcall to fix Build Window freeze on Unity 2020 #10046
- Updated serialization for font assets #10047
- Fixed hand interaction scene to have proper pinch slider colliders #10060
- Fixed Surface Magnetism quaternion math #10074
- Improved PV camera version messages #10077
BoundingBoxHelper.GetRawBoundsCornersprotection level #10093
- Updated gLTF import logs to be one log instead of multiple #10090
MRSceneContentscript from scenes that don't have MRTK in them #10091
- Removed package-based event systems from example scenes for Unity 2018 compatibility #10092
- Removed support for preview Microsoft OpenXR packages #10119
- Fixed apps freezing when receiving data #10033
EyeTrackingTargetnot triggering OnLookAway when passing from collider with
EyeTrackingTargetto collider without #10127
- Changed default pointer extent to make mouse pointer behavior more intuitive #10075
- Updated summary to clarify when Initialize runs #10177
- Fixed a
- Fixed BoundsControl with non-uniform scale issues #10133
- Fixed handling of
IOSMinOSVersionin different cultures #10178
- Removed extra raycasts from eye gaze enabled objects #10162
- Added tooltips when hovering over the various profiles in the Editor Inspector for the MixedRealityToolkit prefab #10180
- Fixed speech command dropdown and update commands in EyeTrackingExample #10197
- Fixed 'gLTF' objects appearing black when loaded with Unity's standard shader #10209
UnityTouchDeviceManagerupdating itself when the
IsEnabledproperty is false #10203
- Updated a property name in the button config helper #10221
- Fixed coordinate space, winding order, and culture formatting in object exporter #10208
- Added option to move grasp point to fingertip #10206
- Added support for Leap UnityModules 4.9.1 #10282
- Backported some minor changes to
- Converted incorrect usages of
- Fixed objects drifting during Near Manipulation #10294
- Fixed cases where bounds control would aggressively remove other components #10296
- Fixed flickering Proximity lighting #10325
- Added check to see if anything is hooked into events before determining to fire those events #10330
- Changed an assortment of minor things #10316
- Introduced an alternative to HasFlag #10319
HandConstraintsolver debug log spam #10331
- Fixed log spam that is coming from
- Enabled Scene Understanding for Holographic Remoting via OpenXR #10338
- Added a parameter-less constructor to InteractableOnClickReceiver #10353
- Moved the FingerChaser prefab to the Common folder in the Examples package #10358
- Added fallback case for articulated hand select on OpenXR #10359
- Fixed a Windows Mic Stream demo UPM import issue #10362
- Renamed OpenXR profiles #10363
- Improved raycast hit log output with Unity 2021 and fixed a crash when using AssetBundles #10370
- Updated strings to const and cache type to reduce allocs #10369
- Fixed XRSDK based mesh observers when using app-based Holographic Remoting #10366
- Integrated Oculus Visualization #10067
- Added documentation for BoundsControl properties #10361
- Fixed Hand Joint Chaser prefab #10377
- Fixed deployment errors for Oculus Quest 10374
- Fixed issue with Scene Understanding example scene profile #10368
- Fixed MRTK console errors when imported in latest versions of Unity 2021.2 #10182
- Added missing documentation on how to change cursors #4934
- Improved instructions on the MRTK Unity package release page to make them clearer #9575
- Fixed issue where MicStream selection demo scene didn't process voice (UPM package) #9908
- Fixed issue where samples couldn't be individually imported in MRTK Examples package #10216
- Added BoundsControl missing documentation for some properties #10346
- Fixed a bug where InteractableOnClickReceiver couldn't be added to a game object with an interactable component #10341
What's new in 2.7.2
Fixed a UPM package dependency issue
There has been an issue with MRTK 2.7.1 UPM packages where the dependencies aren't set up correctly. The issue causes 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's no code change in this version compared to 2.7.1.
What's new in 2.7.1
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.
If MRTK is cloned from the GitHub repository, the version information won't be set.
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's an option for users targeting HoloLens 2 to apply recommended settings automatically.
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
- 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 mature, MRTK now officially supports OpenXR. Compared to previous releases we added the following capabilities to projects using OpenXR:
- Support for the system-provided motion controller model
- Support for WinMR gestures (select, hold, manipulation and navigation) #9843
- Support for controller haptics
- Support for articulated hand mesh on HoloLens 2
- Support for Spatial Mapping on HoloLens 2 #9567, #9827
- Support for Scene Understanding on HoloLens 2 #9744
If you're targeting HoloLens 2 or Windows Mixed Reality headsets via OpenXR, 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. This organization should help determine whether the correct profile is selected for the targeted XR pipeline.
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.
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 a user's previous Experience Scale settings don't match the new Experience Settings Profile, they'll be prompted to correct it in the Inspector.
The Redesigned Configurator now guides the user through the setup process
The new MRTK Configurator provides users with 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.
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.
The dwell feature and example is now graduated from experimental. New examples of volumetric HoloLens 2 style buttons are included in the sample scene.
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. For more information, see How to Configure MRTK for Leap Motion.
Many thanks to @jackyangzzh for contributing the new
Targeted speech events raised no longer restricted to gaze pointers
Previously, targeted speech events could only be raised on objects that were focused on with the gaze pointer. Now, objects can receive speech events if they're focused by any pointer.
TextToSpeech from HTK to MRTK
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.
Support for HoloLens 2 articulated hand mesh on OpenXR
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's 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
IsNearObjectis 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 use their 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's still an auto-completion bug and a TMP Input Field bug (both are external to MRTK) impacting HoloLens. For more information, see #9056 and #9724.
- Improved the performance of Scrolling Object Collection. Also fixed an issue causing
GameObjectwithin the collection to lose material when duplicated. #9813, #9718
- In the Scene Understanding demo script, added the
GetSceneObjectsOfTypefunction to retrieve all observed scene object of a certain kind. #9524, #9744
- In the command line build tool, only scenes specified by the
sceneListFileflags (when any flag is present) will be included in the build. #9695
- In the build tool, there's a new option to specify a path to
nuget.exeand 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
BuildDeployWindowwould try to query an invalid reg key for the Windows SDK path. #9664
glTFimporters are now optional. If multiple
glTFimporters are present, MRTK's can be disabled by adding
MRTK_GLTF_IMPORTER_OFFto 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
Audio demos are missing an
asmdef file (UPM package)
When MRTK is imported via the Mixed Reality Feature Tool, samples and demos are added to the project using the Unity Package Manager UI. After the Audio demos are imported, the
WindowsMicrophoneStreamDemo.unity scene won't behave properly. This behavior is a result of a missing asmdef file for the sample.
To work around this issue, perform the following steps:
- Copy Library/PackageCache/com.microsoft.mixedreality.toolkit.examples@[...]/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's a known issue with the MRTK build window on Unity 2020.3, where the "Importing assets" dialog doesn't complete after a UWP build. This issue is being investigated 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 warnings don't have an effect on MRTK's example scenes and can be cleared from the console. For more details, see Issue 9811.
Submit and view feedback for