using UnityEngine; public class ObsessionTester : MonoBehaviour { // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ // 🧪 이 스크립트는 테스트용입니다! // 프리팹이나 몬스터가 없어도 키보드로 XP 시스템 전체 흐름을 테스트할 수 있어요. // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ private void Start() { Debug.Log("========================================"); Debug.Log("🧪 [테스트 모드 - 최신 룰 적용] 키보드 조작법:"); Debug.Log(" [1] 몹 처치 (+5 런XP)"); Debug.Log(" [2] 방 클리어 (+20 런XP & 클리어 횟수 증가)"); Debug.Log(" [3] 무피격 방 보너스 (+10 런XP)"); Debug.Log(" [4] 보스 처치 (+100 런XP)"); Debug.Log(" [5] 💀 사망 시뮬레이션 (사망 보너스 + 영구 XP 전환)"); Debug.Log(" [6] 📊 현재 상태 확인"); Debug.Log(" [0] 🗑️ 저장 데이터 초기화"); Debug.Log("========================================"); } private void Update() { // ObsessionSystem이 없으면 테스트 불가 if (ObsessionSystem.instance == null) { if (Input.anyKeyDown) { Debug.LogError("❌ ObsessionSystem이 씬에 없어요! GameManager에 추가하세요."); } return; } // [1] 몹 1마리 처치 시뮬레이션 (+5 XP) if (Input.GetKeyDown(KeyCode.Alpha1)) { ObsessionSystem.instance.AddRunXP(5); Debug.Log("⚔️ [테스트] 몹 처치! +5 런 XP"); } // [2] 방 클리어 시뮬레이션 if (Input.GetKeyDown(KeyCode.Alpha2)) { ObsessionSystem.instance.NotifyRoomCleared(); ObsessionSystem.instance.AddStageClearXP(20); Debug.Log("🚪 [테스트] 방 클리어! +20 런 XP"); } // [3] 무피격 방 클리어 보너스 시뮬레이션 if (Input.GetKeyDown(KeyCode.Alpha3)) { ObsessionSystem.instance.AddPerfectClearXP(10); Debug.Log("🛡️ [테스트] 무피격 보너스! +10 런 XP"); } // [4] 보스 처치 시뮬레이션 if (Input.GetKeyDown(KeyCode.Alpha4)) { ObsessionSystem.instance.AddBossKillXP(100); Debug.Log("👑 [테스트] 보스 처치! +100 런 XP"); } // [5] 사망 시뮬레이션 if (Input.GetKeyDown(KeyCode.Alpha5)) { Debug.Log("💀 [테스트] 사망! 런 XP를 영구 XP로 전환합니다..."); ObsessionSystem.instance.OnDeathConvertXP(); } // [6] 상태 확인 (오류 발생 지점 수정) if (Input.GetKeyDown(KeyCode.Alpha6)) { Debug.Log("========================================"); Debug.Log("📊 [현재 상태]"); // [수정] 보간 문자열($) 내부의 변수 출력 방식을 안전하게 재작성했습니다. // 기존 코드의 특수 공백이나 인식 불가능한 문자를 제거했습니다. Debug.Log($"이번 런 XP: {ObsessionSystem.instance.GetCurrentRunXP()}"); Debug.Log($"이번 런 방 클리어 수: {ObsessionSystem.instance.GetClearedRoomsThisRun()} 개"); Debug.Log($"계정 영구 XP: {ObsessionSystem.instance.GetCurrentXP()}"); Debug.Log($"계정 레벨: {ObsessionSystem.instance.GetCurrentLevel()}"); Debug.Log("========================================"); } // [0] 초기화 if (Input.GetKeyDown(KeyCode.Alpha0)) { PlayerPrefs.DeleteAll(); Debug.Log("🗑️ [테스트] 모든 저장 데이터 삭제! (정상 적용을 위해 게임을 껐다 켜주세요)"); } } }