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; } }