示例#1
0
文件: AIBrain.cs 项目: Alarack/Blazer
    protected virtual void Update()
    {
        //Debug.Log(State);

        CheckEnemy();


        switch (State)
        {
        /*--Added this as a general AI practice--*/
        case EnemyState.None:
            healthbar.color = Color.red;
            switch (moveDir)
            {
            case TargetDirection.None:
                healthbar.color = Color.cyan;
                break;

            case TargetDirection.Right:
                if (movement.facingMod != 1)
                {
                    movement.Flip();
                }
                if (!inMeleeRange)
                {
                    State = EnemyState.Walking;
                }
                else
                {
                    State = EnemyState.Attacking;
                }
                break;

            case TargetDirection.Left:
                if (movement.facingMod != -1)
                {
                    movement.Flip();
                }
                if (!inMeleeRange)
                {
                    State = EnemyState.Walking;
                }
                else
                {
                    State = EnemyState.Attacking;
                }
                break;

            default:
                break;
            }
            break;
        /*--End of added section*/

        case EnemyState.Attacking:
            abilityManager.ActivateAbility();
            State = EnemyState.None;
            break;

        case EnemyState.Walking:
            switch (moveDir)
            {
            case TargetDirection.None:
                break;

            case TargetDirection.Right:
                if (movement.facingMod != 1)
                {
                    movement.Flip();
                }
                if (!inMeleeRange)
                {
                    State = EnemyState.Walking;
                }
                else
                {
                    State = EnemyState.Attacking;
                }
                break;

            case TargetDirection.Left:
                if (movement.facingMod != -1)
                {
                    movement.Flip();
                }
                if (!inMeleeRange)
                {
                    State = EnemyState.Walking;
                }
                else
                {
                    State = EnemyState.Attacking;
                }
                break;

            default:
                break;
            }
            break;

        case EnemyState.Stunned:
            myAnim.SetTrigger("BackToIdle");
            healthbar.color = Color.cyan;
            break;

        default:

            break;
        }
    }