using System; using UnityEngine; public enum GamePhase { Menu, Loading, Playing, Results } public sealed class GameFlowController : MonoBehaviour { public GamePhase Phase { get; private set; } = GamePhase.Menu; public event Action PhaseChanged; public void SetPhase(GamePhase phase) { if (Phase == phase) return; Phase = phase; PhaseChanged?.Invoke(Phase); } }