Ludo-3D/Assets/Scripts/State/GameManager.cs

51 lines
1.1 KiB
C#
Raw Normal View History

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