Class ActionBasedController
Interprets feature values on a tracked input controller device using actions from the Input System 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
public class ActionBasedController : 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
activateAction
The Input System action to use for Activating a selected Interactable. Must be a
Declaration
public InputActionProperty activateAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
buttonPressPoint
The value threshold for when a button is considered pressed to trigger an interaction event. If a button has a value equal to or greater than this value, it is considered pressed.
Declaration
public float buttonPressPoint { get; set; }
Property Value
Type | Description |
---|---|
Single |
hapticDeviceAction
The Input System action to use for identifying the device to send haptic impulses to. Can be any control type that will have an active control driving the action.
Declaration
public InputActionProperty hapticDeviceAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
positionAction
The Input System action to use for Position Tracking for this GameObject. Must be a
Declaration
public InputActionProperty positionAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
rotateAnchorAction
The Input System action to use for rotating the interactor's attach point.
Must be a
Declaration
public InputActionProperty rotateAnchorAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
rotationAction
The Input System action to use for Rotation Tracking for this GameObject. Must be a
Declaration
public InputActionProperty rotationAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
selectAction
The Input System action to use for Selecting an Interactable. Must be a
Declaration
public InputActionProperty selectAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
translateAnchorAction
The Input System action to use for translating the interactor's attach point closer or further away from the interactor.
Must be a
Declaration
public InputActionProperty translateAnchorAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
uiPressAction
The Input System action to use for UI interaction. Must be a
Declaration
public InputActionProperty uiPressAction { get; set; }
Property Value
Type | Description |
---|---|
InputActionProperty |
Methods
IsPressed(InputAction)
Evaluates whether the given input action is considered pressed.
Declaration
protected virtual bool IsPressed(InputAction action)
Parameters
Type | Name | Description |
---|---|---|
InputAction | action | The input action to check. |
Returns
Type | Description |
---|---|
Boolean | Returns true when the input action is considered pressed. Otherwise, returns false. |
OnDisable()
See
Declaration
protected override void OnDisable()
Overrides
OnEnable()
See
Declaration
protected override void OnEnable()
Overrides
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.
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.
Declaration
protected override void UpdateTrackingInput(XRControllerState controllerState)
Parameters
Type | Name | Description |
---|---|---|
XRControllerState | controllerState | The state of the controller. |