public void ApplyMovement() { if (isGrounded) { if (moveInputDir != 0 && BelowMaxSpeed()) { rm.AccelerateOnGround(moveInputDir); } else if (Mathf.Abs(velocity.x) > 0) { rm.DecelerateOnGround(); } } else if (!isGrounded && !isWallSliding && moveInputDir != 0 && BelowMaxSpeed()) { rm.AccelerateInAir(moveInputDir); } else if (!isGrounded && !isWallSliding && moveInputDir == 0 && Mathf.Abs(velocity.x) > 0) { rm.DecelerateInAir(); } if (isWallSliding) { rm.WallSlide(); } if (!isGrounded && isCrouching) { rm.Uncrouch(); } }