docs.unity3d.com
    Show / Hide Table of Contents

    Class XRController

    Interprets feature values on a tracked input controller device from the XR input subsystem into XR Interaction states, such as Select. Additionally, it applies the current Pose value of a tracked device to the transform of the GameObject.

    Inheritance
    Object
    Object
    Component
    Behaviour
    MonoBehaviour
    XRBaseController
    XRController
    Inherited Members
    XRBaseController.updateTrackingType
    XRBaseController.enableInputTracking
    XRBaseController.enableInputActions
    XRBaseController.modelPrefab
    XRBaseController.modelParent
    XRBaseController.model
    XRBaseController.animateModel
    XRBaseController.modelSelectTransition
    XRBaseController.modelDeSelectTransition
    XRBaseController.hideControllerModel
    XRBaseController.selectInteractionState
    XRBaseController.activateInteractionState
    XRBaseController.uiPressInteractionState
    XRBaseController.currentControllerState
    XRBaseController.Awake()
    XRBaseController.OnEnable()
    XRBaseController.OnDisable()
    XRBaseController.Update()
    XRBaseController.GetModelPrefab()
    XRBaseController.UpdateController()
    XRBaseController.OnBeforeRender()
    XRBaseController.FixedUpdate()
    XRBaseController.ApplyControllerState(XRInteractionUpdateOrder.UpdatePhase, XRControllerState)
    XRBaseController.UpdateControllerModelAnimation()
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(String, Single)
    MonoBehaviour.InvokeRepeating(String, Single, Single)
    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, Component)
    Component.TryGetComponent<T>(T)
    Component.GetComponent(String)
    Component.GetComponentInChildren(Type, Boolean)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(Boolean)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, Boolean)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(Boolean)
    Component.GetComponentsInChildren<T>(Boolean, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, Boolean)
    Component.GetComponentInParent(Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, Boolean)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(Boolean)
    Component.GetComponentsInParent<T>(Boolean, 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, Boolean)
    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, Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, Boolean)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsSortMode)
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    UnityEngine.Object.FindObjectsByType<T>(UnityEngine.FindObjectsInactive, UnityEngine.FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    UnityEngine.Object.FindFirstObjectByType<T>()
    UnityEngine.Object.FindAnyObjectByType<T>()
    UnityEngine.Object.FindFirstObjectByType<T>(UnityEngine.FindObjectsInactive)
    UnityEngine.Object.FindAnyObjectByType<T>(UnityEngine.FindObjectsInactive)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, Boolean)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: UnityEngine.XR.Interaction.Toolkit
    Syntax
    [AddComponentMenu("XR/XR Controller (Device-based)", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.3/api/UnityEngine.XR.Interaction.Toolkit.XRController.html")]
    public class XRController : XRBaseController
    Remarks

    It is recommended to use ActionBasedController instead of this behavior. This behavior does not need as much initial setup as compared to ActionBasedController, however input processing is less customizable and the XRDeviceSimulator cannot be used to drive this behavior.

    Properties

    activateUsage

    The input to use for detecting activation.

    Declaration
    public InputHelpers.Button activateUsage { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    axisToPressThreshold

    The amount that a user needs to press an axis in order to trigger an interaction event.

    Declaration
    public float axisToPressThreshold { get; set; }
    Property Value
    Type Description
    Single

    controllerNode

    The XRNode for this controller.

    Declaration
    public XRNode controllerNode { get; set; }
    Property Value
    Type Description
    XRNode

    directionalAnchorRotation

    The input to use to compute a directional angle to rotate the interactor's attach point to match it.

    Declaration
    public InputHelpers.Axis2D directionalAnchorRotation { get; set; }
    Property Value
    Type Description
    InputHelpers.Axis2D

    inputDevice

    (Read Only) The InputDevice Unity uses to read data from.

    Declaration
    public InputDevice inputDevice { get; }
    Property Value
    Type Description
    InputDevice

    moveObjectIn

    The input that will be used to translate the anchor away from the interactor (into the screen / away from the player).

    Declaration
    public InputHelpers.Button moveObjectIn { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    moveObjectOut

    The input that will be used to translate the anchor towards the interactor (out of the screen / towards the player).

    Declaration
    public InputHelpers.Button moveObjectOut { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    poseProvider

    Pose provider used to provide tracking data separate from the controllerNode.

    Declaration
    public BasePoseProvider poseProvider { get; set; }
    Property Value
    Type Description
    BasePoseProvider

    rotateObjectLeft

    The input to use to rotate an anchor to the Left.

    Declaration
    public InputHelpers.Button rotateObjectLeft { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    rotateObjectRight

    The input to use to rotate an anchor to the Right.

    Declaration
    public InputHelpers.Button rotateObjectRight { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    selectUsage

    The input to use for detecting a select.

    Declaration
    public InputHelpers.Button selectUsage { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    uiPressUsage

    The input to use for detecting a UI press.

    Declaration
    public InputHelpers.Button uiPressUsage { get; set; }
    Property Value
    Type Description
    InputHelpers.Button

    Methods

    IsPressed(InputHelpers.Button)

    Evaluates whether the button is considered pressed.

    Declaration
    protected virtual bool IsPressed(InputHelpers.Button button)
    Parameters
    Type Name Description
    InputHelpers.Button button

    The button to check.

    Returns
    Type Description
    Boolean

    Returns true when the button is considered pressed. Otherwise, returns false.

    ReadValue(InputHelpers.Button)

    Reads and returns the given action value.

    Declaration
    protected virtual float ReadValue(InputHelpers.Button button)
    Parameters
    Type Name Description
    InputHelpers.Button button

    The button to read the value from.

    Returns
    Type Description
    Single

    Returns the button value.

    SendHapticImpulse(Single, Single)

    Play a haptic impulse on the controller if one is available.

    Declaration
    public override bool SendHapticImpulse(float amplitude, float duration)
    Parameters
    Type Name Description
    Single amplitude

    Amplitude (from 0.0 to 1.0) to play impulse at.

    Single duration

    Duration (in seconds) to play haptic impulse.

    Returns
    Type Description
    Boolean

    Returns true if successful. Otherwise, returns false.

    Overrides
    XRBaseController.SendHapticImpulse(Single, Single)

    UpdateInput(XRControllerState)

    Updates the XR Interaction states in the given controller state based on the current inputs of the controller device. Unity calls this automatically during UpdateController() so explicit calls to this function are not required.

    Declaration
    protected override void UpdateInput(XRControllerState controllerState)
    Parameters
    Type Name Description
    XRControllerState controllerState

    The state of the controller.

    Overrides
    XRBaseController.UpdateInput(XRControllerState)

    UpdateTrackingInput(XRControllerState)

    Updates the pose values in the given controller state based on the current tracking input of the controller device. Unity calls this automatically from FixedUpdate(), OnBeforeRender(), and UpdateController() so explicit calls to this function are not required.

    Declaration
    protected override void UpdateTrackingInput(XRControllerState controllerState)
    Parameters
    Type Name Description
    XRControllerState controllerState

    The state of the controller.

    Overrides
    XRBaseController.UpdateTrackingInput(XRControllerState)

    See Also

    XRBaseController
    ActionBasedController
    In This Article
    • Properties
      • activateUsage
      • axisToPressThreshold
      • controllerNode
      • directionalAnchorRotation
      • inputDevice
      • moveObjectIn
      • moveObjectOut
      • poseProvider
      • rotateObjectLeft
      • rotateObjectRight
      • selectUsage
      • uiPressUsage
    • Methods
      • IsPressed(InputHelpers.Button)
      • ReadValue(InputHelpers.Button)
      • SendHapticImpulse(Single, Single)
      • UpdateInput(XRControllerState)
      • UpdateTrackingInput(XRControllerState)
    • See Also
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023