Class XRInputModalityManager
Manages swapping between hands and controllers at runtime based on whether hands and controllers are tracked.
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit.Inputs
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/XR Input Modality Manager", 11)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.Inputs.XRInputModalityManager.html")]
public class XRInputModalityManager : MonoBehaviour
Remarks
This component uses the following logic for determining which modality is active:
If a hand begin tracking, this component will switch to the hand group of interactors.
If the player wakes the motion controllers by grabbing them, this component will switch to the motion controller group of interactors
once they become tracked. While waiting to activate the controller GameObject while not tracked, both groups will be deactivated.
This component is useful even when a project does not use hand tracking. By assigning the motion controller set of GameObjects,
this component will keep them deactivated until the controllers become tracked to avoid showing the controllers at the default
origin position.
Properties
currentInputMode
Static bindable variable used to track the current input mode.
Declaration
public static IReadOnlyBindableVariable<XRInputModalityManager.InputMode> currentInputMode { get; }
Property Value
Type | Description |
---|---|
IReadOnlyBindableVariable<XRInputModalityManager.InputMode> |
leftController
GameObject representing the left motion controller group of interactors. Will toggle on when using motion controllers and off when using hand tracking.
Declaration
public GameObject leftController { get; set; }
Property Value
Type | Description |
---|---|
GameObject |
leftHand
GameObject representing the left hand group of interactors. Will toggle on when using hand tracking and off when using motion controllers.
Declaration
public GameObject leftHand { get; set; }
Property Value
Type | Description |
---|---|
GameObject |
motionControllerModeEnded
Calls the methods in its invocation list when both hands have stopped motion controller mode.
Declaration
public UnityEvent motionControllerModeEnded { get; set; }
Property Value
Type | Description |
---|---|
UnityEvent |
motionControllerModeStarted
Calls the methods in its invocation list when motion controller mode is started.
Declaration
public UnityEvent motionControllerModeStarted { get; set; }
Property Value
Type | Description |
---|---|
UnityEvent |
Remarks
This event does not fire again for the other hand if the first already started this mode.
rightController
GameObject representing the left motion controller group of interactors. Will toggle on when using motion controllers and off when using hand tracking.
Declaration
public GameObject rightController { get; set; }
Property Value
Type | Description |
---|---|
GameObject |
rightHand
GameObject representing the right hand group of interactors. Will toggle on when using hand tracking and off when using motion controllers.
Declaration
public GameObject rightHand { get; set; }
Property Value
Type | Description |
---|---|
GameObject |
trackedHandModeEnded
Calls the methods in its invocation list when both hands have stopped hand tracking mode.
Declaration
public UnityEvent trackedHandModeEnded { get; set; }
Property Value
Type | Description |
---|---|
UnityEvent |
trackedHandModeStarted
Calls the methods in its invocation list when hand tracking mode is started.
Declaration
public UnityEvent trackedHandModeStarted { get; set; }
Property Value
Type | Description |
---|---|
UnityEvent |
Remarks
This event does not fire again for the other hand if the first already started this mode.
Methods
OnDisable()
See MonoBehaviour.
Declaration
protected void OnDisable()
OnEnable()
See MonoBehaviour.
Declaration
protected void OnEnable()
Update()
See MonoBehaviour.
Declaration
protected void Update()