using UnityEngine; public enum GameState { InMenu, InGame, GameOver, } public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader { private UIManager uiManager; private GameplayManager gameplayManager; public GameState GameState { get; private set; } public void Initialize() { InterfaceManager.Instance.RegisterInterface(this); } public void InitializeData() { uiManager = InterfaceManager.Instance.GetInterfaceInstance(); gameplayManager = InterfaceManager.Instance.GetInterfaceInstance(); OnGameStateChanged(GameState.InMenu); } public void OnGameStateChanged(GameState gameState) { GameState = gameState; switch (gameState) { case GameState.InMenu: gameplayManager.ResetData(); uiManager.OnInMenuScreen(); break; case GameState.InGame: uiManager.OnInGameScreen(); break; case GameState.GameOver: uiManager.OnGameOver(); break; } } }