namespace GFramework.Core.Abstractions.state; /// /// 状态机接口,用于管理状态的注册、切换和验证 /// public interface IStateMachine { /// /// 获取当前激活的状态 /// IState? Current { get; } /// /// 注册一个状态到状态机中 /// /// 要注册的状态实例 void Register(IState state); /// /// 从状态机中注销指定类型的状态 /// /// 要注销的状态类型,必须实现IState接口 void Unregister() where T : IState; /// /// 检查是否可以切换到指定类型的状态 /// /// 目标状态类型,必须实现IState接口 /// 如果可以切换则返回true,否则返回false bool CanChangeTo() where T : IState; /// /// 切换到指定类型的状态 /// /// 要切换到的状态类型,必须实现IState接口 void ChangeTo() where T : IState; }