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
Syntax
[AddComponentMenu("XR/XR Controller (Device-based)", 11)]
[HelpURL("https://docs.unity.cn/Packages/com.unity.xr.interaction.toolkit@2.4/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 |
Overrides
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
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. |