コード例 #1
0
        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;
        }
コード例 #2
0
 private bool CanSprint()
 {
     return(SprintEnabled && StaminaInterface.CanExpendStamina(SprintStaminaCostPerUpdate));
 }