Floaty jump

When i make my character jump, its too “floaty” on the way down, and if i press the sapce bar raipdly my player keeps jumping and getting further ito the sky, any solution? the way up o the jump is quick and fine but the character floats back to the ground.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FpsMovement : MonoBehaviour
{
    public CharacterController controller;

    public float speed = 12f;
    Vector3 velocity;
    public float gravity = -9.81f;
    public float jumpheight;

    public Transform groundCheck;
    public float groundDistance = 0.4f;
    public LayerMask groundMask;

    bool isGrounded;

    // Start is called before the first frame update
    void Start()
    {
      
    }

    // Update is called once per frame
    void Update()
    {
        isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
        {
            if (isGrounded && velocity.y < 0)
                velocity.y = -2f;
        }
      
      
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        Vector3 move = transform.right * x + transform.forward * z;

        controller.Move(move * speed * Time.deltaTime);

        if (Input.GetButtonDown("Jump") && isGrounded)

            velocity.y = Mathf.Sqrt(jumpheight * -2f * gravity);

        velocity.y += gravity * Time.deltaTime;
     
        controller.Move(velocity * Time.deltaTime);
    }
}

Make sure your scales and numbers are reasonable. A Unity capsule is 2m high and should fall over the way you expect. If you make that capsule 100x in size, it will fall VERY slowly to you.

Check what your gravity is in the scene: just because you put it in code, it can still be overwritten by the Unity scene since you marked that public. Generally either set it in code as private / const, or don’t set it in code and force the user to enter it in the inspector.

1 Like

You’re using a real world gravity value. Have you tried adjusting that value to see how it affects being too floaty?

As far as multiple jumps, I’d try reducing the groundDistance variable, or adding a jump cooldown timer. On the cooldown timer, maybe you don’t allow a second jump within 0.5 seconds or so.

1 Like

my gravity in game is also at -9.81, ive inscrsed it too up to -20, but it only makes the jump itself quicker, not the fall sadly