If You Donwload the File
1. Found that you press jump on air, you will boost Down.
2. SuperJump when hit ground.
You can change Code like below, it may fix the problem.
``` + private Vector2 groundGravity; void Awake() { ... + groundGravity = new Vector2(0, (-2 * jumpHeight) / (timeToJumpApex * timeToJumpApex)); ... } private void setPhysics() { - Vector2 newGravity = new Vector2(0, (-2 * jumpHeight) / (timeToJumpApex * timeToJumpApex)); - body.gravityScale = (newGravity.y / Physics2D.gravity.y) * gravMultiplier; + // ( Ground Gravity ) * ( Gravity Multiplier). + body.gravityScale = (groundGravity.y / Physics2D.gravity.y) * gravMultiplier; } private void FixedUpdate() { ... - if (desiredJump) + if (desiredJump && onGround) ... } private void DoAJump() { ... - jumpSpeed = Mathf.Sqrt(-2f * Physics2D.gravity.y * body.gravityScale * jumpHeight); + jumpSpeed = Mathf.Sqrt(-2f * Physics2D.gravity.y * (groundGravity.y / Physics2D.gravity.y) * jumpHeight); ... } ```