docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class ClimbProvider

    Locomotion provider that allows the user to climb a ClimbInteractable by selecting it. Climb locomotion moves the XR Origin counter to movement of the last selecting interactor, with optional movement constraints along each axis of the interactable.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    LocomotionProvider
    ClimbProvider
    Implements
    IGravityController
    Inherited Members
    LocomotionProvider.mediator
    LocomotionProvider.transformationPriority
    LocomotionProvider.locomotionState
    LocomotionProvider.isLocomotionActive
    LocomotionProvider.canStartMoving
    LocomotionProvider.locomotionStateChanged
    LocomotionProvider.locomotionStarted
    LocomotionProvider.locomotionEnded
    LocomotionProvider.beforeStepLocomotion
    LocomotionProvider.afterStepLocomotion
    LocomotionProvider.TryPrepareLocomotion()
    LocomotionProvider.TryStartLocomotionImmediately()
    LocomotionProvider.TryEndLocomotion()
    LocomotionProvider.OnLocomotionStarting()
    LocomotionProvider.OnLocomotionEnding()
    LocomotionProvider.OnLocomotionStateChanging(LocomotionState)
    LocomotionProvider.TryQueueTransformation(IXRBodyTransformation)
    LocomotionProvider.TryQueueTransformation(IXRBodyTransformation, int)
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.XR.Interaction.Toolkit.Locomotion.Climbing
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    [AddComponentMenu("XR/Locomotion/Climb Provider", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.2/api/UnityEngine.XR.Interaction.Toolkit.Locomotion.Climbing.ClimbProvider.html")]
    [MovedFrom("UnityEngine.XR.Interaction.Toolkit")]
    public class ClimbProvider : LocomotionProvider, IGravityController

    Properties

    canProcess

    Whether the gravity can be processed. Gravity controllers that can process receive queries to gravityPaused, controllers that cannot process do not.

    Declaration
    public bool canProcess { get; }
    Property Value
    Type Description
    bool
    Remarks

    It's recommended to return isActiveAndEnabled when implementing this interface in a MonoBehaviour.

    See Also
    ClimbInteractable

    climbAnchorInteractable

    The interactable that is currently grabbed and driving movement. This will be null if there is no active climb.

    Declaration
    public ClimbInteractable climbAnchorInteractable { get; }
    Property Value
    Type Description
    ClimbInteractable
    See Also
    ClimbInteractable

    climbAnchorInteractor

    The interactor that is currently grabbing and driving movement. This will be null if there is no active climb.

    Declaration
    public IXRSelectInteractor climbAnchorInteractor { get; }
    Property Value
    Type Description
    IXRSelectInteractor
    See Also
    ClimbInteractable

    climbSettings

    Climb locomotion settings. Can be overridden by the ClimbInteractable used for locomotion.

    Declaration
    public ClimbSettingsDatumProperty climbSettings { get; set; }
    Property Value
    Type Description
    ClimbSettingsDatumProperty
    See Also
    ClimbInteractable

    enableGravityOnClimbEnd

    Whether to allow falling when climb locomotion ends. Disable to pause gravity when releasing, keeping the user from falling.

    Declaration
    public bool enableGravityOnClimbEnd { get; set; }
    Property Value
    Type Description
    bool
    See Also
    ClimbInteractable

    gravityPaused

    Whether gravity is paused.

    Declaration
    public bool gravityPaused { get; protected set; }
    Property Value
    Type Description
    bool
    See Also
    IsGravityBlocked()

    providersToDisable

    List of providers to disable while climb locomotion is active. If empty, no providers will be disabled by this component while climbing.

    Declaration
    public List<LocomotionProvider> providersToDisable { get; set; }
    Property Value
    Type Description
    List<LocomotionProvider>
    See Also
    ClimbInteractable

    transformation

    The transformation that is used by this component to apply climb movement.

    Declaration
    public XROriginMovement transformation { get; set; }
    Property Value
    Type Description
    XROriginMovement
    See Also
    ClimbInteractable

    Methods

    Awake()

    See MonoBehaviour.

    Declaration
    protected override void Awake()
    Overrides
    LocomotionProvider.Awake()
    See Also
    ClimbInteractable

    FinishClimbGrab(IXRSelectInteractor)

    Finishes the grab driven by interactor. If this was the most recent grab then movement will now be driven by the next most recent grab.

    Declaration
    public void FinishClimbGrab(IXRSelectInteractor interactor)
    Parameters
    Type Name Description
    IXRSelectInteractor interactor

    The interactor whose grab to finish.

    Remarks

    If there is no other active grab to fall back on, this will put the locomotionPhase in the Done state in the next Update().

    See Also
    ClimbInteractable

    OnGravityLockChanged(GravityOverride)

    Called from TryLockGravity(IGravityController, GravityOverride) when gravity lock is changed.

    Declaration
    protected virtual void OnGravityLockChanged(GravityOverride gravityOverride)
    Parameters
    Type Name Description
    GravityOverride gravityOverride

    The GravityOverride to apply.

    See Also
    onGravityLockChanged

    OnGroundedChanged(bool)

    Called from GravityProvider when the grounded state changes.

    Declaration
    protected virtual void OnGroundedChanged(bool isGrounded)
    Parameters
    Type Name Description
    bool isGrounded

    Whether the player is on the ground.

    Remarks

    This is used to prevent players teleporting to the ground while climbing resulting in gravity failing to unpause.

    See Also
    onGroundedChanged

    RemoveGravityLock()

    Removes this provider from the GravityProvider list's of locked providers.

    Declaration
    public void RemoveGravityLock()
    See Also
    ClimbInteractable

    StartClimbGrab(ClimbInteractable, IXRSelectInteractor)

    Starts a grab as part of climbing climbInteractable, using the position of interactor to drive movement.

    Declaration
    public void StartClimbGrab(ClimbInteractable climbInteractable, IXRSelectInteractor interactor)
    Parameters
    Type Name Description
    ClimbInteractable climbInteractable

    The object to climb.

    IXRSelectInteractor interactor

    The interactor that initiates the grab and drives movement.

    Remarks

    This puts the locomotionPhase in the Started state if locomotion has not already started. The phase will then enter the Moving state in the next Update().

    See Also
    ClimbInteractable

    TryLockGravity(GravityOverride)

    Attempts to lock gravity.

    Declaration
    public bool TryLockGravity(GravityOverride gravityOverride)
    Parameters
    Type Name Description
    GravityOverride gravityOverride

    The GravityOverride to apply.

    Returns
    Type Description
    bool

    Whether the gravity was successfully locked.

    See Also
    ClimbInteractable

    Update()

    See MonoBehaviour.

    Declaration
    protected virtual void Update()
    See Also
    ClimbInteractable

    Events

    climbAnchorUpdated

    Calls the methods in its invocation list when the provider updates climbAnchorInteractable and climbAnchorInteractor. This can be invoked from either StartClimbGrab(ClimbInteractable, IXRSelectInteractor) or FinishClimbGrab(IXRSelectInteractor). This is not invoked when climb locomotion ends.

    Declaration
    public event Action<ClimbProvider> climbAnchorUpdated
    Event Type
    Type Description
    Action<ClimbProvider>
    See Also
    ClimbInteractable

    Implements

    IGravityController

    See Also

    ClimbInteractable
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)