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());
        }
    }
Пример #2
0
    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();
        }
    }