using System.Collections.Generic; using BaseGames.Core.Events; namespace BaseGames.Core { /// /// 可插件化的游戏状态行为接口。 /// public interface IGameState { GameStateId Id { get; } /// 合法的后继状态集合。GameStateMachine.TransitionTo() 据此校验。 IReadOnlyCollection ValidNextStates { get; } void OnEnter(GameStateId previousState); void OnExit(GameStateId nextState); /// 每帧由 GameManager.Update() 调用(默认空实现)。 void Tick(float deltaTime); } }