using UnityEngine; namespace BaseGames.Player.States { /// 闲置状态。默认入口状态,播放 Idle 动画。 public class IdleState : PlayerStateBase { public IdleState(PlayerController owner) : base(owner) { } public override void OnStateEnter() { if (AnimCfg?.Idle != null) Anim.Play(AnimCfg.Idle); Move?.ZeroHorizontalVelocity(); } public override void OnStateUpdate() { if (!Move.IsGrounded) { _owner.TransitionTo(_owner.FallState); return; } if (Buffer.ConsumeJump()) { _owner.TransitionTo(_owner.JumpState); return; } if (Mathf.Abs(Input.MoveInput.x) > 0.1f) { _owner.TransitionTo(_owner.RunState); } } } }