Enforce 2021.3 as minimum version, upgrade sample project to 2021.3.16f1
Overview
As 2020 reaches the end of its supported lifespan, it's time to move our minimum version to 2021. The timing of this is especially critical as we move towards GA. This PR removes support for 2020.x from MRTK3, in exchange for a large number of improvements from 2021, including
- Modern C# syntax and versions, including
- Default-impl interfaces
-
new() - Lots more!
- New features from UIElements that are necessary for the upcoming EditorTools/MVVM system
- Significant performance enhancements for the Unity Editor
- Support for ARFoundation 5.0+ which resolves several long-standing headaches with MRTK3
- Upgrade to the new asset serialization format which is required for proper prefab override management with
[SerializedReference]s in 2021 - And more that I'm forgetting right now :)
Changes
- Bumps minimum Unity version of all MRTK3 packages to 2021.3
- Upgrades sample project Unity version to 2021.3.16f1
- Upgrades ARFoundation version to 5.0.3
- Removes deprecated
ARSessionOriginfrom XR Rig - Reserializes many assets to the new serialization format
- Regenerated the OpenXR Package Settings asset because the validator was yelling at me about duplicate entries.\
- Resolves 11153
Known issues
- ARFoundation 5 complains when you it's installed, there's an XROrigin present, and you don't also have both
ARCameraBackgroundandARCameraManagerpresent on the main camera. This is a little silly.- If you add those two scripts, it then complains you have no valid
XRCameraSubsystemwhen you're not running on a phone, which is also silly.
- If you add those two scripts, it then complains you have no valid
Additional context
@keveleigh , now that we're on 2021.3.16f1, can we bump our CI runners to that version too? We'll need to when we add tests to validate the Animator/Playables engine fix that just landed.
Verification
All tests should pass. @Clandguth should also build-call this PR specifically as there's risk of regressions from ARFoundation upgrades as well as engine changes.
@Zee2 Wanted the bugs directly in the PR
Controller visualization appearing on Hololens 2 after starting a recording
Describe the bug
A single controller appeared on the users right hand after the user started recording behavior for another issue. User did not see the controller visualization before starting the recording
To reproduce
- Checkout the 'Enforce 2021.3 as minimum version, upgrade sample project to 2021.3.16f1' PR https://github.com/microsoft/MixedRealityToolkit-Unity/pull/11345 from Zee2:2021_upgrade
- Build Example scenes and load them onto device
- Launch MRT3Sample, and start recording while in any scene
- Observe controller appears over the users right hand
- 1/3 reproduction rate when closing and re-launching the application
Expected behavior
No controller is shown on HL2
Video
https://user-images.githubusercontent.com/110259320/210881563-c1d3cb89-f518-429c-9e23-ac0ccf55aa68.mp4
Your setup (please complete the following information)
- Unity Version [2021.3.16f1]
- MRTK Version [3.13]
Target platform (please complete the following information)
- HoloLens 2
Additional Info/Data
Hand-Rays do not properly interact with the piano in the Hand Interaction Example
Describe the bug
The piano in Hand Interaction Example does not play an animation when selected with Hand-Rays, but will still play sound. The hand cursor interacts as it normally would.
To reproduce
- Checkout the 'Enforce 2021.3 as minimum version, upgrade sample project to 2021.3.16f1' PR #11345 from Zee2:2021_upgrade
- Build Example scenes and load them onto device
- Launch MRT3Sample and navigate to the Hand Interaction Example
- Interact with the piano towards the bottom of the scene
- Observe Hand-Rays plays the intended sound but does not play the animation
Expected behavior
Hand cursors and Hand-Rays play sound and animates the key as expected
Video
https://user-images.githubusercontent.com/110259320/210880222-1b2a54c8-6ef1-45a6-96ee-46aaf3ec4193.mp4
Your setup (please complete the following information)
- Unity Version [2021.3.16f1]
- MRTK Version [3.13]
Target platform (please complete the following information)
- HoloLens 2
@davidkline-ms fixed min version in EditorProjectUtilities
Hand-Rays do not properly interact with the piano in the Hand Interaction Example
@Clandguth this is actually a serious bug and is present in pre.13 and the main branch, for 2020. See #11383 .
@Zee2 Wanted the bugs directly in the PR
Controller visualization appearing on Hololens 2 after starting a recording
This was thankfully a minor configuration error (the regenerated OpenXR settings assets were missing the hand tracking features, and therefor joint data was missing and MRTK thought the hands were controllers!) Fixed now.
Work was done with this PR
- https://github.com/microsoft/MixedRealityToolkit-Unity/pull/11465