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.
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[AddComponentMenu("XR/XR Controller (Device-based)", 11)]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.5/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 |
See Also
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 |
---|---|
float |
See Also
controllerNode
The XRNode for this controller.
Declaration
public XRNode controllerNode { get; set; }
Property Value
Type | Description |
---|---|
XRNode |
See Also
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 |
See Also
inputDevice
(Read Only) The InputDevice Unity uses to read data from.
Declaration
public InputDevice inputDevice { get; }
Property Value
Type | Description |
---|---|
InputDevice |
See Also
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 |
See Also
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 |
See Also
poseProvider
Pose provider used to provide tracking data separate from the controllerNode.
Declaration
public BasePoseProvider poseProvider { get; set; }
Property Value
Type | Description |
---|---|
BasePoseProvider |
See Also
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 |
See Also
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 |
See Also
selectUsage
The input to use for detecting a select.
Declaration
public InputHelpers.Button selectUsage { get; set; }
Property Value
Type | Description |
---|---|
InputHelpers.Button |
See Also
uiPressUsage
The input to use for detecting a UI press.
Declaration
public InputHelpers.Button uiPressUsage { get; set; }
Property Value
Type | Description |
---|---|
InputHelpers.Button |
See Also
Methods
IsPressed(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 |
---|---|
bool | Returns true when the button is considered pressed. Otherwise, returns false. |
See Also
ReadValue(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 |
---|---|
float | Returns the button value. |
See Also
SendHapticImpulse(float, float)
Play a haptic impulse on the controller if one is available.
Declaration
public override bool SendHapticImpulse(float amplitude, float duration)
Parameters
Type | Name | Description |
---|---|---|
float | amplitude | Amplitude (from 0.0 to 1.0) to play impulse at. |
float | duration | Duration (in seconds) to play haptic impulse. |
Returns
Type | Description |
---|---|
bool |
Overrides
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. |