// ───────────────────────────────────────────────────────────────────────────── // WLIslandSaveSettings.cs — 섬 세이브 이름 고정 설정(SO). // // 🔴 왜 파일을 나눴나 (Lead 실측 · 2026-09-13) // 유니티는 `ScriptableObject` 를 **클래스 이름과 같은 이름의 .cs 파일**에서만 // `MonoScript` 로 인식한다. 이 클래스가 `WLIslandSave.cs` 안에 있던 동안에는 // `.asset` 의 `m_Script` 가 **`{fileID: 0}`** 로 비어 저장돼 // `Resources.Load` 가 null 을 돌려줬고, 그래서 세이브 단일화(main `33afe0b8d`)가 // **동작하지 않았다**(816g 가 실측으로 지목: `WL_Island.dat` 가 아니라 // `Level01.dat`/`InGame.dat` 가 생김). 파일을 분리해 바로잡는다. // ───────────────────────────────────────────────────────────────────────────── using UnityEngine; namespace WL.Island { public sealed class WLIslandSaveSettings : ScriptableObject { [Tooltip("0 이면 원본 동작(활성 씬 이름)으로 되돌아간다.")] public int enabled_ = 1; [Tooltip("모든 경로가 공유할 세이브 파일 이름(확장자 제외).")] public string saveName = "WL_Island"; [Tooltip("1 이면 해석 결과를 로그로 남긴다.")] public int verboseLog = 0; static WLIslandSaveSettings s_cache; public static WLIslandSaveSettings Get() { if (s_cache == null) s_cache = Resources.Load("WL/WLIslandSaveSettings"); return s_cache; } } }