using UnityEngine; namespace BaseGames.Enemies { /// /// 敌人动画配置 SO(架构 07_EnemyModule §5)。 /// 所有字段为 AnimationClip,由 Animancer 直接播放。 /// [CreateAssetMenu(menuName = "BaseGames/Enemies/AnimationConfig")] public class EnemyAnimationConfigSO : ScriptableObject { [Header("基础")] public AnimationClip Idle; public AnimationClip Walk; public AnimationClip Run; [Tooltip("转身动画(可选);配合 EnemyMovement._enableTurnAnimation 使用,留空则瞬时翻转")] public AnimationClip Turn; [Header("战斗")] public AnimationClip Attack; [Header("受击")] public AnimationClip Hurt; public AnimationClip Stagger; [Tooltip("击飞腾空动画(可选);留空时由 EnemyBase.ScheduleStateRecovery 按时长自动恢复")] public AnimationClip KnockUp; public AnimationClip Dead; [Header("AI 阶段")] [Tooltip("发现目标时的短暂警觉姿态(可选)")] public AnimationClip Alert; [Tooltip("搜查时的慢走或环顾动作(留空则回退到 Walk)")] public AnimationClip Investigate; /// /// 按字段名返回 Clip(BD_PlayAnimation 使用)。 /// 支持字段名和常见别名(如 Attack_Melee / Idle 等)。 /// public AnimationClip GetClipByName(string name) { return name switch { "Idle" => Idle, "Walk" => Walk, "Run" or "Chase" => Run, "Turn" => Turn, "Attack" or "Attack_Melee" => Attack, "Hurt" => Hurt, "Stagger" => Stagger, "KnockUp" => KnockUp, "Dead" or "Death" => Dead, "Alert" => Alert, "Investigate" => Investigate ?? Walk, _ => null, }; } } }