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
Inherited Members
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.5/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
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
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
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
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
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
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
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
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
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
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
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
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
Methods
OnDisable()
See MonoBehaviour.
Declaration
protected override void OnDisable()
Overrides
See Also
OnEnable()
See MonoBehaviour.
Declaration
protected override void OnEnable()
Overrides
See Also
Start()
See MonoBehaviour.
Declaration
protected void Start()
See Also
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
See Also
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. |