docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class JumpProvider

    Jump Provider allows the player to jump in the scene. This uses a jump force to drive the value of the jumpHeight over time to allow the player to control how floaty the jump feels. The player can hold down the jump button to increase the altitude of the jump. This provider handles coyote time to allow jumping to feel more consistent.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    LocomotionProvider
    JumpProvider
    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.Jump
    Assembly: Unity.XR.Interaction.Toolkit.dll
    Syntax
    [AddComponentMenu("XR/Locomotion/Jump Provider", 11)]
    [HelpURL("https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@3.2/api/UnityEngine.XR.Interaction.Toolkit.Locomotion.Jump.JumpProvider.html")]
    public class JumpProvider : 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.

    disableGravityDuringJump

    Disable gravity during the jump. This will result in a more floaty jump.

    Declaration
    public bool disableGravityDuringJump { get; set; }
    Property Value
    Type Description
    bool

    earlyOutDecelerationSpeed

    The speed at which the jump will decelerate when the player releases the jump button early.

    Declaration
    public float earlyOutDecelerationSpeed { get; set; }
    Property Value
    Type Description
    float

    gravityPaused

    Whether gravity is paused.

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

    inAirJumpCount

    The number of times a player can jump before landing.

    Declaration
    public int inAirJumpCount { get; set; }
    Property Value
    Type Description
    int

    isJumping

    Returns whether the player is currently jumping.

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

    This is only true during jump ascent, it is not true during the descent.

    jumpForgivenessWindow

    The time window after leaving the ground that a jump can still be performed. Sometimes known as coyote time.

    Declaration
    public float jumpForgivenessWindow { get; set; }
    Property Value
    Type Description
    float

    jumpHeight

    The height (approximately in meters) the player will be when reaching the apex of the jump.

    Declaration
    public float jumpHeight { get; set; }
    Property Value
    Type Description
    float

    jumpInput

    Input data that will be used to perform a jump. If the source is an Input Action, it must have a button-like interaction where phase equals performed when pressed. Typically a UnityEngine.InputSystem.Controls.ButtonControl Control or a Value type action with a Press interaction.

    Declaration
    public XRInputButtonReader jumpInput { get; set; }
    Property Value
    Type Description
    XRInputButtonReader

    maxJumpHoldTime

    The maximum time a player can hold down the jump button to increase altitude.

    Declaration
    public float maxJumpHoldTime { get; set; }
    Property Value
    Type Description
    float

    minJumpHoldTime

    The minimum amount of time the jump will execute for.

    Declaration
    public float minJumpHoldTime { get; set; }
    Property Value
    Type Description
    float

    transformation

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

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

    unlimitedInAirJumps

    Allow player to jump without being grounded.

    Declaration
    public bool unlimitedInAirJumps { get; set; }
    Property Value
    Type Description
    bool

    variableHeightJump

    Whether the jump height is based on how long the player continues to hold the jump button. Enable to allow the player to stop their jump early when input is released before reaching the maximum jump height. Disable to jump a fixed height.

    Declaration
    public bool variableHeightJump { get; set; }
    Property Value
    Type Description
    bool

    Methods

    Awake()

    See MonoBehaviour.

    Declaration
    protected override void Awake()
    Overrides
    LocomotionProvider.Awake()

    CanJump()

    Determines if the player can jump.

    Declaration
    public bool CanJump()
    Returns
    Type Description
    bool

    Returns whether the player can jump. The Jump() method will not do anything while this method returns false.

    Remarks

    Returns true when any of these conditions are met:

    • The player is grounded or within the jump forgiveness time (coyote time).
    • The player has remaining in-air jumps.
    See Also
    Jump()

    IsPausingGravity()

    Whether this JumpProvider is currently pausing gravity.

    Declaration
    public bool IsPausingGravity()
    Returns
    Type Description
    bool

    Returns true if isJumping and disableGravityDuringJump are currently true, otherwise returns false.

    Jump()

    Initiates the jump routine.

    Declaration
    public void Jump()
    See Also
    CanJump()

    OnDisable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnDisable()

    OnEnable()

    See MonoBehaviour.

    Declaration
    protected virtual void OnEnable()

    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.

    See Also
    onGroundedChanged

    OnValidate()

    See MonoBehaviour.

    Declaration
    protected virtual void OnValidate()

    RemoveGravityLock()

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

    Declaration
    public void RemoveGravityLock()

    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.

    Update()

    See MonoBehaviour

    Declaration
    protected virtual void Update()

    Implements

    IGravityController
    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)