protected void FixedUpdate() { // Normal Vector var movementVector = GetMovementVector(); var currentVelocity = Velocity; // Managing sprint status if (CanSprint() && (Mathf.Abs(HorizontalModifier) > 0.01f || Mathf.Abs(ForwardModifier) > 0.01f)) { currentVelocity *= SprintMultiplier; StaminaInterface.AlterStamina(-SprintStaminaCostPerUpdate); } else if (StaminaInterface.IsStaminaDepleted()) { currentVelocity *= ExhaustedMultiplier; } movementVector *= currentVelocity; ObjectRigidBody.velocity = new Vector3(movementVector.x, movementVector.y, 0.0f); HorizontalModifier = 0.0f; ForwardModifier = 0.0f; }
private bool CanSprint() { return(SprintEnabled && StaminaInterface.CanExpendStamina(SprintStaminaCostPerUpdate)); }