MixedRealityToolkit / MixedRealityToolkit-Unity

This repository holds the third generation of the Mixed Reality Toolkit for Unity. The latest version of the MRTK can be found here.
BSD 3-Clause "New" or "Revised" License
339 stars 86 forks source link

Update MRTK3 to support XRI 3.0 #645

Open AMollis opened 5 months ago

AMollis commented 5 months ago

In an upcoming major release of MRTK3, packages will be updated to provide minimum support of XRI 3.0.

Work can be tracked by watching this branch:

With the new input changes from XRI3, the controller-based classes are now obsolete and have been deprecated to reflect this. The functionality of the controller classes can be found in a combination of the standard TrackedPoseDriver as well as the input properties on the individual interactors where that input makes sense.

MRTK3 will be updated to remove dependencies on the obsolete controller-based classes, and where needed, mark usages of the controller-based cases as obsolete.

The goals of this release are as follows:

‼️ Using new XRI3 interactors in place of the existing MRTK3 interactors is not in scope for this release. Long term, it is desired that MRTK3 starts relying on XRI interactors instead of custom ones. This work is tracked via #67.

shaynie commented 3 months ago

@ms-RistoRK will be looking at this upgrade for the next couple sprints. Expected to require major release bump Talked to Unity: Namespaces have changed process is to upgrade to pre-release 2, THEN upgrade to release and then not running the migration tool.

bd-jimmy commented 3 months ago

Would it make sense to upgrade the project to 2022 LTS and 2023 LTS first? I see some slight upgrades for those versions.

shaynie commented 2 months ago

Created feature/XRI3 branch on 4/17/24.

shaynie commented 2 months ago

Risto is currently working on a new MRTK rig prefab without controller behaviors. Old prefab will remain but deprecated

shaynie commented 2 months ago

Unity 6 tech preview to be released in June.

AMollis commented 2 months ago

Before we ship this version....deprecated MRTK3 method/classes should be removed.

shaynie commented 2 months ago

Holding in discussion until the XRI 3 PR is committed

AMollis commented 1 month ago

Updated the "details" of the issue, so goals are clearer

AMollis commented 3 weeks ago

XRI3 branch still has some usages of deprecated XRI classes

ObjectManipulator

RiggedHandMeshVisualizer

FlatScreenModeDetector

InteractionModeManager

HandJointInteractor

MRTKRayInteractor

AMollis commented 2 weeks ago

XRI3 branch still has some usages of deprecated XRI classes

ObjectManipulator

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.spatialmanipulation\ObjectManipulator\ObjectManipulator.cs(1065,17): warning CS0618: 'XRBaseInputInteractor.xrController' is obsolete: 'xrController has been deprecated in version 3.0.0.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.spatialmanipulation\ObjectManipulator\ObjectManipulator.cs(1065,54): warning CS0618: 'ActionBasedController' is obsolete: 'ActionBasedController has been deprecated in version 3.0.0. Its functionality has been distributed into different components.'

RiggedHandMeshVisualizer

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\Visualizers\RiggedHandVisualizer\RiggedHandMeshVisualizer.cs(77,17): warning CS0618: 'XRBaseController' is obsolete: 'XRBaseController has been deprecated in version 3.0.0. Its functionality has been distributed into different components.'

FlatScreenModeDetector

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\FlatScreenModeDetector.cs(34,13): warning CS0618: 'FlatScreenModeDetector.controllerLookup' is obsolete: 'Deprecated, please use MixedReality.Toolkit.Input.TrackedPoseDriverLookup instead.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\FlatScreenModeDetector.cs(34,47): warning CS0618: 'ControllerLookup' is obsolete: 'Deprecated, please use MixedReality.Toolkit.Input.TrackedPoseDriverLookup instead.'

InteractionModeManager

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\InteractionModeManager.cs(74,87): warning CS0618: 'XRController' is obsolete: 'XRController has been deprecated in version 3.0.0. Its functionality has been distributed into different components.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\InteractionModeManager.cs(74,22): warning CS0618: 'XRController' is obsolete: 'XRController has been deprecated in version 3.0.0. Its functionality has been distributed into different components.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\InteractionModeManager.cs(215,36): warning CS0618: 'XRBaseInputInteractor.xrController' is obsolete: 'xrController has been deprecated in version 3.0.0.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\InteractionModes\InteractionModeManager.cs(252,36): warning CS0618: 'XRBaseInputInteractor.xrController' is obsolete: 'xrController has been deprecated in version 3.0.0.'

HandJointInteractor

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\Interactors\HandJointInteractor.cs(35,53): warning CS0618: 'XRBaseInputInteractor.xrController' is obsolete: 'xrController has been deprecated in version 3.0.0.'
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\Interactors\HandJointInteractor.cs(35,69): warning CS0612: 'ArticulatedHandController' is obsolete
  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\Interactors\HandJointInteractor.cs(52,43): warning CS0618: 'XRBaseInputInteractor.xrController' is obsolete: 'xrController has been deprecated in version 3.0.0.'

MRTKRayInteractor

  • C:\dev\repos\mrtk3-atm\org.mixedrealitytoolkit.input\Interactors\Ray\MRTKRayInteractor.cs(53,53): warning CS0618: 'XRBaseInputInteractor.isUISelectActive' is obsolete: 'isUISelectActive has been deprecated in version 3.0.0. Use a serialized XRInputButtonProvider to read button input instead.'

These issues have been resolved in the XRI3 feature branch