// ───────────────────────────────────────────────────────────────────────────── // WLEquipGui.cs — 장비 화면 GUI v3 · 레퍼런스(캐릭터 중심) 형태 재설계 + Layer Lab 스프라이트 (2026-10-12 · PD 지시) // // 허브 화면(레퍼런스 1): 상단(자동 장착 · 골드/열쇠(+상자)/강화석) → 캐릭터 무대(3D 미리보기 RenderTexture · 좌 3·우 3 장착 슬롯 · // 공격/생명 알약) → 부위 탭 7 + 「합성」 버튼 → 5열 그리드(등급 색 프레임 · 부위 핀 · Lv · 장착됨 태그) → 뒤로 가기. // 상세 팝업(장착/강화/합성/강등) · 뽑기 시트(WLEquipGui.Gacha.cs) · 합성 화면(WLEquipGui.Compose.cs · 레퍼런스 2 · FR ComposePopup 흐름). // 코드로 만드는 uGUI(프리팹 0). 치수·색·스프라이트 이름은 전부 `Resources/WL/WLEquipGui.json`(C45). 로직은 WLInventory·WLEquipStats·WLEquipGacha. // 스프라이트가 없으면 색 사각형으로 대체해 기능은 그대로 돈다. // ───────────────────────────────────────────────────────────────────────────── using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace WL.Equip { public partial class WLEquipGui : MonoBehaviour { public static WLEquipGui Instance { get; private set; } public static bool IsOpen { get { return Instance != null && Instance.gameObject.activeSelf; } } public static int Opens { get; private set; } public static string LastLog { get; private set; } = ""; const int UILayer = 5; const float RefW = 1080f, RefH = 1920f; WLEquipSettings _cfg; WLEquipGuiConfig _g; WLGuiLayout L; WLGuiHub H; WLGuiCompose C; WLGuiGacha G; TMP_FontAsset _font; Canvas _canvas; RectTransform _root; // ── 허브 ── RectTransform _hub, _gridContent; ScrollRect _scroll; RawImage _preview; WLEquipPreview _previewRig; TextMeshProUGUI _coinText, _keyText, _stoneText, _atkText, _hpText, _message; readonly Cell[] _slots = new Cell[6]; readonly TextMeshProUGUI[] _slotNames = new TextMeshProUGUI[6]; readonly List