docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class XRScreenSpaceController

    Interprets screen presses and gestures by using actions from the Input System and converting them into XR Interaction states, such as Select. It applies the current press position on the screen to move the transform of the GameObject.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    XRBaseController
    XRScreenSpaceController
    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.uiScrollValue
    XRBaseController.currentControllerState
    XRBaseController.Awake()
    XRBaseController.Update()
    XRBaseController.GetModelPrefab()
    XRBaseController.UpdateController()
    XRBaseController.OnBeforeRender()
    XRBaseController.FixedUpdate()
    XRBaseController.ApplyControllerState(XRInteractionUpdateOrder.UpdatePhase, XRControllerState)
    XRBaseController.UpdateControllerModelAnimation()
    XRBaseController.SendHapticImpulse(float, float)
    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
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    [AddComponentMenu("XR/XR Screen Space Controller", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.6/api/UnityEngine.XR.Interaction.Toolkit.XRScreenSpaceController.html")]
    public class XRScreenSpaceController : XRBaseController
    Remarks

    This behavior requires that the Input System is enabled in the Active Input Handling setting in Edit > Project Settings > Player for input values to be read. Each input action must also be enabled to read the current value of the action. Referenced input actions in an Input Action Asset are not enabled by default.

    Properties

    blockInteractionsWithScreenSpaceUI

    Tells the XR Screen Space Controller to ignore interactions when hitting a screen space canvas.

    Declaration
    public bool blockInteractionsWithScreenSpaceUI { get; set; }
    Property Value
    Type Description
    bool
    See Also
    renderMode

    controllerCamera

    The camera associated with the screen, and through which screen presses/touches will be interpreted.

    Declaration
    public Camera controllerCamera { get; set; }
    Property Value
    Type Description
    Camera
    See Also
    XRBaseController
    TouchscreenGestureInputController

    dragCurrentPositionAction

    The Input System action to use for reading the screen Drag Position for this GameObject. Must be a UnityEngine.InputSystem.Controls.Vector2Control Control.

    Declaration
    public InputActionProperty dragCurrentPositionAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    dragDeltaAction

    dragDeltaAction

    The Input System action used to read the delta Drag values for this GameObject. Must be a UnityEngine.InputSystem.Controls.Vector2Control Control.

    Declaration
    public InputActionProperty dragDeltaAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    dragCurrentPositionAction

    enableTouchscreenGestureInputController

    When enabled, a TouchscreenGestureInputController will be added to the Input System device list to detect touch gestures. This input controller drives the gesture values for the input actions for the screen space controller.

    Declaration
    public bool enableTouchscreenGestureInputController { get; set; }
    Property Value
    Type Description
    bool
    See Also
    XRBaseController
    TouchscreenGestureInputController

    pinchGapAction

    The Input System action used to read the Pinch values for this GameObject. Must be an UnityEngine.InputSystem.Controls.AxisControl Control.

    Declaration
    public InputActionProperty pinchGapAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    pinchGapDeltaAction

    pinchGapDeltaAction

    The Input System action used to read the delta Pinch values for this GameObject. Must be an UnityEngine.InputSystem.Controls.AxisControl Control.

    Declaration
    public InputActionProperty pinchGapDeltaAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    pinchStartPositionAction

    pinchStartPositionAction

    The Input System action to use for reading the Pinch Start Position for this GameObject. Must be a UnityEngine.InputSystem.Controls.Vector2Control Control.

    Declaration
    public InputActionProperty pinchStartPositionAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    pinchGapDeltaAction

    rotationThreshold

    The threshold at which a gestures will be interpreted only as rotation and not a pinch scale gesture.

    Declaration
    public float rotationThreshold { get; set; }
    Property Value
    Type Description
    float
    See Also
    useRotationThreshold

    scaleDelta

    This value is the change in scale based on input from the pinchGapDeltaAction pinch gap delta action with dpi applied as a factor of the value read in. The delta refers to the change from the previous frame.

    Declaration
    public float scaleDelta { get; }
    Property Value
    Type Description
    float
    Remarks

    This value may come back as zero if the input action is not assigned or cannot be read.

    See Also
    XRBaseController
    TouchscreenGestureInputController

    screenTouchCountAction

    The number of concurrent touches on the screen. Must be an UnityEngine.InputSystem.Controls.IntegerControl Control.

    Declaration
    public InputActionProperty screenTouchCountAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    XRBaseController
    TouchscreenGestureInputController

    tapStartPositionAction

    The Input System action to use for reading screen Tap Position for this GameObject. Must be a UnityEngine.InputSystem.Controls.Vector2Control Control.

    Declaration
    public InputActionProperty tapStartPositionAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    XRBaseController
    TouchscreenGestureInputController

    twistDeltaRotationAction

    The Input System action used to read the delta Twist values for this GameObject. Must be an UnityEngine.InputSystem.Controls.AxisControl Control.

    Declaration
    public InputActionProperty twistDeltaRotationAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    twistStartPositionAction

    twistStartPositionAction

    The Input System action to use for reading the Twist Start Position for this GameObject. Must be a UnityEngine.InputSystem.Controls.Vector2Control Control.

    Declaration
    public InputActionProperty twistStartPositionAction { get; set; }
    Property Value
    Type Description
    InputActionProperty
    See Also
    twistDeltaRotationAction

    useRotationThreshold

    Enables a rotation threshold that blocks pinch scale gestures when surpassed.

    Declaration
    public bool useRotationThreshold { get; set; }
    Property Value
    Type Description
    bool
    See Also
    rotationThreshold

    Methods

    OnDisable()

    See MonoBehaviour.

    Declaration
    protected override void OnDisable()
    Overrides
    XRBaseController.OnDisable()
    See Also
    XRBaseController
    TouchscreenGestureInputController

    OnEnable()

    See MonoBehaviour.

    Declaration
    protected override void OnEnable()
    Overrides
    XRBaseController.OnEnable()
    See Also
    XRBaseController
    TouchscreenGestureInputController

    Start()

    See MonoBehaviour.

    Declaration
    protected void Start()
    See Also
    XRBaseController
    TouchscreenGestureInputController

    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)
    See Also
    XRBaseController
    TouchscreenGestureInputController

    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
    TouchscreenGestureInputController

    See Also

    XRBaseController
    TouchscreenGestureInputController
    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)