docs.unity3d.com
    Show / Hide Table of Contents

    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.

    Inheritance
    Object
    XRBaseController
    ActionBasedController
    Inherited Members
    XRBaseController.updateTrackingType
    XRBaseController.enableInputTracking
    XRBaseController.enableInputActions
    XRBaseController.modelPrefab
    XRBaseController.modelParent
    XRBaseController.modelTransform
    XRBaseController.model
    XRBaseController.animateModel
    XRBaseController.modelSelectTransition
    XRBaseController.modelDeSelectTransition
    XRBaseController.hideControllerModel
    XRBaseController.anchorControlDeadzone
    XRBaseController.anchorControlOffAxisDeadzone
    XRBaseController.selectInteractionState
    XRBaseController.activateInteractionState
    XRBaseController.uiPressInteractionState
    XRBaseController.Awake()
    XRBaseController.Update()
    XRBaseController.GetModelPrefab()
    XRBaseController.UpdateController()
    XRBaseController.OnBeforeRender()
    XRBaseController.GetControllerState(XRControllerState)
    XRBaseController.SetControllerState(XRControllerState)
    XRBaseController.ApplyControllerState(XRInteractionUpdateOrder.UpdatePhase, XRControllerState)
    XRBaseController.UpdateControllerModelAnimation()
    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 Control.

    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 Control.

    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 Control. Will use the X-axis as the rotation input.

    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 Control.

    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 Control.

    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 Control. Will use the Y-axis as the translation input.

    Declaration
    public InputActionProperty translateAnchorAction { get; set; }
    Property Value
    Type Description
    InputActionProperty

    uiPressAction

    The Input System action to use for UI interaction. Must be a Control.

    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
    XRBaseController.OnDisable()

    OnEnable()

    See .

    Declaration
    protected override void OnEnable()
    Overrides
    XRBaseController.OnEnable()

    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

    Returns true if successful. Otherwise, returns false.

    Overrides
    XRBaseController.SendHapticImpulse(Single, Single)

    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
    XRBaseController.UpdateInput(XRControllerState)

    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.

    Overrides
    XRBaseController.UpdateTrackingInput(XRControllerState)

    See Also

    XRBaseController
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023