using UnityEngine; namespace BaseGames.Player { [CreateAssetMenu(menuName = "BaseGames/Player/AnimationConfig")] public class PlayerAnimationConfigSO : ScriptableObject { [Header("移动")] public AnimationClip Idle; public AnimationClip Run; public AnimationClip Jump; [Tooltip("空中跳跃(二段跳)动画。留空则复用 Jump 动画。")] public AnimationClip AirJump; public AnimationClip Fall; [Tooltip("普通冲刺动画(无无敌帧,过程中受伤会被打断)。")] public AnimationClip Dash; [Tooltip("无敌冲刺动画(解锁 InvincibleDash 能力后使用)。留空则复用 Dash 动画。")] public AnimationClip DashInvincible; [Header("墙")] public AnimationClip WallSlide; [Tooltip("背墙跳动画(无输入或反向输入时触发,远离墙壁斜上方弹出)。留空则复用 Jump 动画。")] public AnimationClip WallJumpAway; [Tooltip("对墙跳动画(朝向墙壁输入时触发,沿墙壁方向斜上方弹出)。留空则复用 Jump 动画。")] public AnimationClip WallJumpToward; [Header("受伤 / 死亡")] public AnimationClip Hurt; public AnimationClip Dead; [Tooltip("受击硬直最短持续时间(秒),动画早于此时间结束也不会提前退出)")] public float HurtDuration = 0.4f; [Header("弹簧")] public AnimationClip UseSpring; [Header("弹反")] public AnimationClip ParryStart; public AnimationClip ParrySuccess; [Header("游泳")] public AnimationClip SwimIdle; public AnimationClip SwimMove; } }