예제 #1
0
    public void states_update(AICombatState combatState)
    {
        // Determine if our controller is already moving
        bool isMoving = this.is_moving();

        // Set our combat state directly
        this.combatState = combatState;
        // Based on our movement, determine what our movement state is (Run when have aquired the target)
        this.movementState = (isMoving || this.combatState == AICombatState.Charging) ? (this.combatState == AICombatState.Charging)
            ? AIMovementState.Running :
                             AIMovementState.Walking :
                             AIMovementState.Idle;
    }
예제 #2
0
    public float move_speed(AIMovementState movementState, AICombatState combatState = AICombatState.Idle)
    {
        // Based on our movement and combat state, return the correct movement speed
        switch (movementState)
        {
        case (AIMovementState.Idle):
            return(0f);

        case AIMovementState.Walking:
            return(this.walkSpeed);

        case AIMovementState.Running:
            return(this.walkSpeed * this.runSpeedMultiplier);

        default:
            return(this.walkSpeed);
        }
    }
예제 #3
0
    public float movement_magnitude(AIMovementState movementState)
    {
        // <NOTE>
        // These values are based on the velocity-transition values you have in
        // your enemy's animator.
        // </NOTE>

        // Based on the movement state, determine what the magnitude is
        switch (movementState)
        {
        case (AIMovementState.Idle):
            return(0f);

        case AIMovementState.Walking:
            return(1f);

        case AIMovementState.Running:
            return(2f);

        default:
            return(0f);
        }
    }