public Vector2 Update() { if (jumpCount < jumpsMax && !jumping) // init { if ((super.isGrounded && InputWrapper.GetJumpBuffered() && jumpCount == 0) || InputWrapper.GetJumpDown()) // first jump is buffered { jumping = true; super.partsys.Play(); jumpTime = jumpTimeMax[jumpCount]; jumpSpeedCur = new Vector2(0, jumpSpeed[jumpCount]); } } if (jumping) { if (jumpTime > 0 && InputWrapper.GetJump()) { super.overrideVel.y = jumpSpeedCur.y; vel.x = jumpSpeedCur.x; jumpTime -= Time.fixedDeltaTime; } else // end jump { jumpTime = 0; jumping = false; jumpCount++; vel = Vector2.zero; } } return(vel); }