Example #1
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.K))
        {
            EnemyStatus = Enemy.Charge;
        }
        if (Input.GetKeyDown(KeyCode.Y))
        {
            enemyHp.Enemycohp(10);
            Hp         -= 10;
            EnemyStatus = Enemy.Impact;
            Anim.SetTrigger("Hit");
        }
        if (Hp <= maxHp / 2 && !IsSecondStage && !Second)
        {
            EnemyStatus = Enemy.SecondStage;
        }

        if (Hp <= 0)
        {
            EnemyStatus = Enemy.Dead;
        }
        if (Player != null)
        {
            //敵人和玩家之間的距離
            Distance = Vector3.Distance(transform.position, Player.position);
        }
        switch (EnemyStatus)
        {
        case Enemy.Patrol:     // 巡邏
            if (!IsDead)
            {
                Vector3 relDirection = transform.InverseTransformDirection(Agent.desiredVelocity);
                Anim.SetFloat("Move", relDirection.z, 0.5f, Time.deltaTime);

                if (!Agent.pathPending && Agent.remainingDistance < AttackRange)
                {
                    Patrol();
                }
            }
            break;

        case Enemy.Alert:     //警戒
            Alert();
            break;

        case Enemy.Attack:     //攻擊
            Attack();
            break;

        case Enemy.Chase:     //追擊
            Chasing();
            break;

        case Enemy.Charge:     //突刺
            Charge();
            break;

        case Enemy.Impact:     //受擊
            Impact();
            break;

        case Enemy.SecondStage:     //進入第二階段
            SwitchSecondStage();
            break;

        case Enemy.Dead:     // 死亡
            if (!IsDead)
            {
                Agent.enabled    = true;
                RedLight.enabled = false;
                Anim.SetTrigger("Dead");

                SecondStageStand.Stop();
                IsDead = true;
                EnemyCollider.enabled = false;
            }
            break;

        default:
            break;
        }
    }