using UnityEngine; public class GameManager : MonoBehaviour { // 외부에서 쉽게 접근할 수 있는 싱글톤 인스턴스 public static GameManager Instance { get; private set; } [Header("보존할 플레이어 스탯 데이터")] public string playerName = ""; public int playerGeneration = 1; public int playerHp = 5; public int playerMaxHp = 5; private void Awake() { // 중복 생성 방지 및 싱글톤 유지 if (Instance != null && Instance != this) { Destroy(gameObject); return; } Instance = this; // 씬이 전환되어도 이 오브젝트가 파괴되지 않고 유지되도록 설정합니다. DontDestroyOnLoad(gameObject); } // 플레이어 스탯을 동기적으로 복사하여 세이브하는 메서드 public void SavePlayerData(Player player) { if (player != null) { playerName = player.CharacterName; playerGeneration = player.Generation; playerHp = player.hp; playerMaxHp = player.maxHp; Debug.Log($"[GameManager] 캐릭터 정보 보존 세이브 완료: {playerName} ({playerGeneration}대) | HP: {playerHp}/{playerMaxHp}"); } } // 플레이어 보존 세션을 리셋하는 메서드 (사망 시 호출) public void ClearPlayerData() { playerName = ""; playerGeneration = 1; playerHp = 5; playerMaxHp = 5; Debug.Log("[GameManager] 보존된 이전 플레이어 스탯 데이터를 비웠습니다. (신규 세대 생성 준비 완료)"); } }