My Player's Jump and Gravity Speed is not the when how i want it to be

im trying to get my player’s jump and gravity speed the same so my player and jump and fall at the same speed and also limit his jump height. this is the code

public class PlayerJump : MonoBehaviour {

public float jumpSpeed = 20;
public float gravity = 9.8f;

CharacterController controller;
Vector3 currentMovement;

// Use this for initialization
void Start () 
{
	controller = GetComponent<CharacterController>();
}

// Update is called once per frame
void Update () 
{
	if (!controller.isGrounded)
		currentMovement -= new Vector3 (0, gravity * Time.deltaTime, 0);

	else
		currentMovement.y = 0;

	if (!controller.isGrounded && Input.GetButtonDown ("Jump"))
		currentMovement.y = jumpSpeed;
	
	controller.Move (currentMovement * Time.deltaTime);
}

}

You should never set the y of your movement Vector3 to 0 on a CharacterController because by the time it will leave the ground when not constantly pushed against it. Use -9.81 instead.

I don’t see how you’re ever going to leave the ground as your if-statement checks for the jump button and NOT grounded. Change it to

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

Well from your script , there are cases where you would multiply with deltaTime twice, eg when you are not grounded. Try removing the second deltaTime you use, the one multiplied with currentMovement and see what happens.