private void Update() { if (!available) { return; } if (playerRun.isRunning()) { currentStamina = Mathf.Max(0f, currentStamina - (staminaCost * Time.deltaTime)); } else { currentStamina = Mathf.Min(totalStamina, currentStamina + (staminaRecovery * Time.deltaTime)); } if (currentStamina <= 0f) { StartCoroutine(waitAndRecover()); } }
void Update() { movement.y -= jump.getGravity(); characterController.Move(movement * Time.deltaTime); if (!characterController.isGrounded) { return; } movement = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); movement = transform.TransformDirection(movement); movementSpeed = run.isRunning() ? runningSpeed : walkingSpeed; movement *= movementSpeed; if (jump.isJumping()) { movement.y += jump.getJumpForce(); } }