Strange slow jump.

I have a rolling ball game and have this issue for so long and still don’t know how to solve this. My jumping works but slowed to half when jumping on a flat.
This is my jump code.


My movement

rb.AddForce(movement * currentSpeed * Time.deltaTime);
// limiting movement speed
if (rb.velocity.magnitude > maxSpeed)
            rb.velocity = rb.velocity.normalized * maxSpeed;    

Even when I don’t include the limit it still doesn’t solve it.
Here’s an image. I put a mark so you can tell.
link image

Someone help me solve this, I really appreciate it. Thanks in advance.

As far as I can guess, maybe you could change something by applying the limit separately instead of by the vector’s magnitude. Something like:

if (rb.velocity.x > maxHorizontalSpeed)
    rb.velocity = rb.velocity.normalized * new Vector3(maxHorizontalSpeed, rb.velocity.y, rb.velocity.z);

if (rb.velocity.y > maxVerticalSpeed) 
    rb.velocity = rb.velocity.normalized * new Vector3(rb.velocity.x, maxVerticalSpeed, rb.velocity.z);

Besides, since your maxSpeed is a float I believe it’s wrong to assign it the way you’re doing unless you want the velocity to be the same on the x and y axis.