2026-01-30 09:35:31 +05:30
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public enum GameState
|
|
|
|
|
{
|
|
|
|
|
InMenu,
|
|
|
|
|
InGame,
|
2026-01-30 21:51:33 +05:30
|
|
|
GameOver,
|
2026-01-30 09:35:31 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class GameManager : MonoBehaviour, IBase, IBootLoader, IDataLoader
|
|
|
|
|
{
|
|
|
|
|
private UIManager uiManager;
|
2026-01-30 21:51:33 +05:30
|
|
|
private GameplayManager gameplayManager;
|
2026-01-30 09:35:31 +05:30
|
|
|
|
|
|
|
|
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 09:35:31 +05:30
|
|
|
|
2026-01-30 21:51:33 +05:30
|
|
|
OnGameStateChanged(GameState.InMenu);
|
2026-01-30 09:35:31 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void OnGameStateChanged(GameState gameState)
|
|
|
|
|
{
|
2026-01-30 21:51:33 +05:30
|
|
|
GameState = gameState;
|
2026-01-30 09:35:31 +05:30
|
|
|
switch (gameState)
|
|
|
|
|
{
|
|
|
|
|
case GameState.InMenu:
|
2026-01-30 21:51:33 +05:30
|
|
|
gameplayManager.ResetData();
|
2026-01-30 09:35:31 +05:30
|
|
|
uiManager.OnInMenuScreen();
|
|
|
|
|
break;
|
|
|
|
|
case GameState.InGame:
|
|
|
|
|
uiManager.OnInGameScreen();
|
|
|
|
|
break;
|
2026-01-30 21:51:33 +05:30
|
|
|
case GameState.GameOver:
|
|
|
|
|
uiManager.OnGameOver();
|
|
|
|
|
break;
|
2026-01-30 09:35:31 +05:30
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|