Files
Flappy-Bird-AI-Driven-Result/Assets/Scripts/Core/GameManager.cs
T
2026-03-16 14:38:46 +02:00

62 lines
1.3 KiB
C#

using System;
using UnityEngine;
using Zenject;
namespace FlappyBird.Core
{
public class GameManager : IGameManager, IInitializable
{
public GameState CurrentState { get; private set; } = GameState.Menu;
public event Action<GameState> OnGameStateChanged;
public void Initialize()
{
CurrentState = GameState.Menu;
Debug.Log($"Gameplay state: {CurrentState}");
}
public void StartGame()
{
if (CurrentState != GameState.Menu)
{
return;
}
TransitionTo(GameState.Playing);
}
public void GameOver()
{
if (CurrentState != GameState.Playing)
{
return;
}
TransitionTo(GameState.GameOver);
}
public void ReturnToMenu()
{
if (CurrentState == GameState.Menu)
{
return;
}
TransitionTo(GameState.Menu);
}
private void TransitionTo(GameState state)
{
if (CurrentState == state)
{
return;
}
CurrentState = state;
Debug.Log($"Gameplay state: {CurrentState}");
OnGameStateChanged?.Invoke(CurrentState);
}
}
}