7.2 KiB
GodDem UI 전면 개편 설계·위임 SOT v1
작성: Fable5 (총괄PM) 2026-08-20 · PD 지시: Layer Lab GUI Pro-SuperCasual 에셋으로 아웃게임 UI 전면 개편 + 인게임 UI 재구성 위임 구조: Fable5 설계 → 개발팀장(Opus) 검토·구현·검증 (C49) · 화면 단위 순차 원칙: 원작 Wild Survival = Layer Lab과 동일 SuperCasual 스타일이므로 참조 화면 그대로 재현
0. 에셋 도입 완료 상태 (선행 완료)
- 위치:
E:\NerdNavis\GodDem\Assets\GUIPro\(ResourcesData + Prefabs, GUID 유지 복사) - 규모: 프리팹 534종 · 스프라이트 993종 · 커스텀 스크립트 0개(순수 비주얼)
- 완성 화면 프리팹 (
Assets/GUIPro/Prefabs/Prefabs_DemoScene_Panels/):PD 지정 프리팹 용도 로비 Lobby.prefab아웃게임 메인 상점 Shop.prefab재화/패스/데일리 Hero Equipment.prefab+Collection_List.prefab캐릭터 장비·강화 (스크롤) 인게임 Play_UI_Action.prefab/Play_UI_Idle.prefab전투 HUD 스킬선택 Play_UI_ChoiceSkill.prefab레벨업 3종 택1 승리 PopupDim_Play_Result_Victory.prefab결과 패배 PopupDim_Play_Result_Defeat.prefab결과 레벨업 PopupFull_LevelUp.prefab/PopupFull_CharacterLevelUp.prefab연출 장비상세 Popup_EquipmentItemInfo02_*.prefab(등급별 6색)팝업 - 컴포넌트 프리팹:
Prefabs_Component_Buttons(70)·_Frames(200)·_Labels(53)·_Popups(36)·_Sliders(48)·_UI_Etc(41) - 아이콘:
Icon_ItemIcons/Original/— Gear_Sword/Ring/Boots/Hat/Armor(장비), Chest_Gem/Gold/Premium(상자), Energy/Gem/Clover, Damage/Dungeon/Battle 등 /Icon_ShopItem(CoinPack·GemPack) /Icon_GradeBadge(등급)
0-1. ⚠️ 필수 계약 3가지 (위반 시 깨짐)
- 한글 폰트 교체: Layer Lab 프리팹의 모든
TMP_Text.font는 Cairo/Sen(한글 미지원)이다. 반드시Assets/Resources/Fonts/ONEMobilePOP SDF.asset(또는Assets/UGUI/Fonts/ONEMobilePOP_TMP.asset)으로 교체. 텍스트도 한국어로. - CanvasScaler: GodDem 표준 = ScreenSpaceOverlay, Reference 1080×1920, ScaleWithScreenSize, Match=Expand. Layer Lab 프리팹 임포트 후 이 값으로 통일.
- Unity MCP 단일 인스턴스: 위임 에이전트는 한 번에 하나만 Unity를 조작한다. 병렬 금지.
1. 인게임 UI (Phase A — 최우선, SurvivalBattle 직결)
대상 씬: Assets/Scenes/SurvivalBattle.unity
현재: SurvivalHUD.cs(IMGUI) — 이걸 Layer Lab UGUI 프리팹으로 교체
데이터 소스: SurvivalBattleManager.Instance (public API 이미 존재)
| Layer Lab 프리팹 | 대응 GodDem 데이터 | 참조 화면 |
|---|---|---|
Play_UI_Action.prefab |
상단: Gold(코인)·Wave/Stage·Enemies.Count(킬)·경험치바(Exp/RequiredExp)·Level / 하단: Player.Hp/MaxHp 체력바 |
4_Play_UI_Action |
Play_UI_ChoiceSkill.prefab |
PendingSkills(3종) → 카드 아이콘/이름(Name)/설명(Desc)/등급(Grade). 선택 → ChooseSkill(i) |
4_Play_UI_ChoiceSkill |
PopupDim_Play_Result_Victory.prefab |
스테이지 클리어(웨이브 10 완주) 시. REWARDS = 획득 골드. Continue → 다음 스테이지/로비 |
9_Play_Result_Victory |
PopupDim_Play_Result_Defeat.prefab |
IsGameOver 시. REWARDS = 골드. Continue → Restart() 또는 로비 |
9_Play_Result_Defeat |
능력치 강화 패널(원작 3탭 가로행)은 Play_UI_Action 하단에 통합. Layer Lab Prefabs_Component_Buttons + ItemMatchHomeBaseUpgrade 스타일 행으로 SurvivalBattleManager.Upgrades.Tracks 12종 표시, TryUpgrade(i) 연결.
신규 스크립트: SurvivalUIController.cs(MonoBehaviour) — 프리팹 인스턴스를 Instantiate하고 SurvivalBattleManager 필드에 바인딩. SurvivalHUD(IMGUI) 제거. 매 프레임 값 갱신(코루틴/Update).
2. 아웃게임 UI (Phase B — 로비/상점/영웅)
대상 시스템: Assets/Script/UGUI/*.cs(활성 UGUI) — UITK(Assets/Script/UI/)는 비활성 레거시, 건드리지 않음
진입점: UGUILobbySceneUIController + MainDocument.prefab (런타임 Instantiate)
강결합 계약: ①kebab-case 노드 이름(Q<T>("start-button") 등) ②이벤트 버스(MainMenuUIEvents/ModalEvents/TabEvents) ③재화 옵저버(CurrencyManager.Get + ObserverManager.AddObserver(GenerateItemTypeKey(GOLD_ID/GEM_ID)))
| 화면 | Layer Lab | GodDem 연결 | 참조 |
|---|---|---|---|
| 로비 | Lobby.prefab |
UGUILobbyView — PLAY → SceneManager.LoadScene("SurvivalBattle")(신규 인게임으로 변경). 재화 헤더 = UGUIHeaderView 계약 |
1_Lobby |
| 상점 | Shop.prefab |
UGUIShopView(현재 빈 껍데기) 채움 — GEM PACK/GOLD PACK/DAILY. CurrencyManager 재화 |
13_Shop_1/2 |
| Hero | Equipment.prefab |
신규 Hero 뷰 — 캐릭터 + 장비 슬롯 + Attack/HP + 스크롤 인벤토리. SurvivalBattle 강화 or 별도 메타 | 6_Equipment |
| 하단 탭 | Lobby.prefab 내 네비 |
UGUIMainMenuView 5버튼 계약(menu__*-button) |
1_Lobby 하단 |
접근 방식: 기존 MainDocument.prefab(13만 라인·nested 6331)을 수정하기보다, Layer Lab 화면 프리팹을 신규 배치하고 노드에 kebab-case 이름을 부여해 기존 뷰 코드와 결선하거나, 뷰 코드의 조회 문자열을 새 노드명에 맞춰 수정. 개발팀장이 프리팹 규모를 보고 방식(스킨 교체 vs 재구축) 판정.
3. 자율 판단 영역 (PD 위임)
나머지 화면(모달·팝업·토스트·설정 등)은 개발팀장이 Layer Lab 대응 프리팹을 자율 매핑:
- 게임결과 모달
UGUIGameResultModal→PopupDim_Play_Result_* - 가챠결과
UGUIGachaResultModal→PopupFull_RewardItems/Popup_Chest - 설정
UGUISettingModal→Settings.prefab - 일시정지
UGUIPauseModal→Popup_Close/Popup_OtherPopup_01 - 토스트 →
Popup_Toast - 등급 뱃지
UGUIGradeBadge→Icon_GradeBadge
4. 위임·분할 계획
| Phase | 범위 | 위임 | 검증 |
|---|---|---|---|
| A | 인게임 4화면 (Action/ChoiceSkill/Victory/Defeat) + 강화패널 | 개발팀장(Opus) → 클라이언트팀(Sonnet) | Play 스크린샷 |
| B1 | 로비 (Lobby.prefab + 하단탭 + 헤더) | 개발팀장 | Play 스크린샷 |
| B2 | 상점 (Shop.prefab) | 개발팀장 | Play 스크린샷 |
| B3 | Hero (Equipment.prefab) | 개발팀장 | Play 스크린샷 |
| C | 자율 매핑 (모달·팝업·토스트) | 개발팀장 | 종합 |
각 Phase는 Unity MCP 단일 인스턴스라 순차 진행. Phase A부터.
5. 저작권·주의
- Layer Lab GUI Pro-SuperCasual = PD 구매 상용 에셋(정당 사용). 원작 Wild Survival 리소스(저작권 침해)와 다름 — 이 에셋은 자유롭게 사용.
- 기존 GodDem UGUI 시스템은 유닛 소환 대전형 메타(가챠/카드/룬)라 SurvivalBattle과 데이터가 다름. 아웃게임은 SurvivalBattle에 맞게 재구성하되 재화(CurrencyManager)는 재사용.
- IMGUI
SurvivalHUD는 Phase A 완료 후 제거.