docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRInputModalityManager

    Manages swapping between hands and controllers at runtime based on whether hands and controllers are tracked.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    XRInputModalityManager
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    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.2/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 right 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()
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)