using System;
using UnityEngine;
namespace GameFramework
{
///
/// 全局游戏状态管理器(持久化单例)。
/// 维护 GameState,提供 GameOver / Win 触发入口与对应事件。
///
public class GameManager : PersistentSingleton
{
/// 游戏结束(失败)时触发。
public static Action onGameOver;
/// 游戏胜利时触发。
public static Action onGameWin;
public static GameState GameState
{
get => Instance.gameState;
set => Instance.gameState = value;
}
[SerializeField] private GameState gameState = GameState.Playing;
/// 触发游戏失败:设状态 + 触发事件。
public static void GameOver()
{
if (Instance == null) return;
GameState = GameState.GameOver;
onGameOver?.Invoke();
}
/// 触发游戏胜利:设状态 + 触发事件。
public static void Win()
{
if (Instance == null) return;
GameState = GameState.Victory;
onGameWin?.Invoke();
}
}
public enum GameState
{
Playing,
Paused,
GameOver,
Victory,
Scoring
}
}