Files
zeling_v2/Assets/Scripts/Player/States/IdleState.cs
2026-05-08 11:04:00 +08:00

36 lines
943 B
C#

using UnityEngine;
namespace BaseGames.Player.States
{
/// <summary>闲置状态。默认入口状态,播放 Idle 动画。</summary>
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);
}
}
}
}