using System.Collections; using Animancer; using UnityEngine; namespace BaseGames.Enemies.Abilities { /// /// 警觉行为能力:停下 + 朝向玩家 + Alert 阶段(播警觉动画/feedback)。持续朝向玩家直到被打断。 /// "警觉态朝向角色"等行为归本能力,AI 只在进入警觉状态时触发。 /// public class AlertAbility : EnemyAbilityBase { [Header("警觉动画(可选,留空则用 AnimConfig.Alert 阶段动画)")] [SerializeField] private ClipTransition _alertClip; protected override IEnumerator ExecuteCoroutine() { Phase = AbilityRunState.Active; _enemy.SetAiPhase(AiPhase.Alert); // 阶段动画 + 广播(供群体警戒等) if (_alertClip.Clip != null) _animancer.Play(_alertClip); while (true) { _enemy.StopMovement(); // 保持静止 if (_enemy.PlayerTransform != null) _enemy.FaceTarget(_enemy.PlayerTransform.position); // 朝向玩家 yield return null; } } } }