docs(BT13-GodDem): 로비 임시 진입 버튼 5403caa·P19 등재·지시 이탈 3건 PM 판정
- 임시 메뉴 7종 push(좌표 교차검증·기존 UI 무충돌)·게이트 우회는 화면 열기까지 한정 - 지시 이탈 3건 승인(호출 위치·로그 파일·C6 백업 유지 — 감사관 전제 오류 확인) - C2 proxy 표시·철거 조건 코드 주석 명문화 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
58f48073e7
commit
bad603e965
File diff suppressed because one or more lines are too long
|
|
@ -95,3 +95,68 @@ PD 보고 "UI 개편 후 이전 시스템이 안 보임 + 전투 화면부터
|
|||
- **★ 확인 불가의 실제 원인 3층**: ①성장·장비강화·마스터리 3종은 **영웅 패널 내부**(하단 4번) — 로비 첫 화면에 노출 없음 ②뽑기는 로비에 있으나 **영웅레벨 3 게이트로 잠금 상태** — 세이브 실측 `survival_meta.json` = `{"Owned":{},"Equipped":[0,0,0,0,0,0],"Version":1}` → HeroLevel 키 부재 = **0** ③합성은 뽑기 패널 탭이라 ②에 막혀 도달 불가
|
||||
- **부수 실측**: 세이브가 **Version 1** — 현행 CurrentVersion 6 대비 5단계 구버전. 최초 로드 시 v6 마이그레이션이 처음 동작(구 세이브 실로드 검증 = 이 시점이 최초). 콘솔 유일 에러는 `StreamingAssets/StandaloneWindows/csv` 번들 404(에디터는 CSVLoader 직독 폴백 — 감사 실측 정합)
|
||||
- **결론**: 삭제·소실 0건 확정. PD 지시 ②(하단 메뉴 배치)가 곧 근본 해소책 — 레이아웃 수령 후 1회 집행 대기
|
||||
|
||||
## 108. 로비 임시 진입 버튼 패널 신설 — §107 진단의 임시 우회 집행 (개발팀장·2026-08-25)
|
||||
|
||||
> **일자 주석**: 집행 시각은 2026-08-25 이나 PM 지시가 본 파일 §108 append 를 명시 지정 — §100~§107 의 파일 가로지르는 연속 번호 관행 유지. (pm-auditor 는 `2026-08-25.md` 신규 분리를 권고 = C32 날짜 파티션. 파일 분리 여부는 PM 재량으로 이월.)
|
||||
|
||||
- **PD 원문 (2026-08-25)**: "어차피 지금은 임시니까 로비 화면에 임시 버튼을 만들면 되잖아" — C1 지시=승인
|
||||
- **결정**: §107 이 확정한 "삭제 0건·접근 경로만 차단" 상태를, 정식 레이아웃을 기다리지 않고 임시 UI 로 우회한다. 신규 partial `SurvivalLobbyController.TempNav.cs` 1개 + 기존 파일 `Start()` 호출 1줄.
|
||||
- **근거**: 성장 B1·장비강화 B2·스킬마스터리 B4 는 `_hero` 자식(로비 첫 화면 미노출), 뽑기 B3·합성 B3-2 는 `_lobby` 자식이나 `IsGachaUnlocked()`(HeroLevel>=3) 게이트 잠금. 코드 Read 로 부모 관계·게이트 위치 전수 실측 후 착수(C39-10).
|
||||
- **영향**: PD 가 로비 첫 화면에서 7개 시스템을 즉시 열람 가능. 정식 UI 동작·설계 사양은 무변경.
|
||||
|
||||
### 설계 판단 3건
|
||||
- **핸들러 재사용 + 토글 방향 고정**: 기존 진입 핸들러 4종이 전부 `!activeSelf` 토글이라 그대로 부르면 "닫기"가 될 수 있다. 로직 복제 대신 **직전에 `SetActive(false)` 로 토글 방향을 "열기"로 고정**한 뒤 기존 핸들러 호출 — 임시 UI 와 정식 UI 의 동작 분기를 원천 차단.
|
||||
- **부모 패널 선행 활성**: `_hero` 자식 3종은 부모가 꺼져 있으면 `SetActive(true)` 를 해도 `activeInHierarchy=false` 라 화면에 뜨지 않는다 → `ShowPanel(_hero)` 선행 필수(§107 MCP 실측이 근거).
|
||||
- **게이트 우회 범위 한정**: `OnClickGachaEntry` 를 우회해 `ShowGachaTab()`/`ShowForgeTab()` 직접 호출 → **열기만** 우회. 정식 `Button_Gacha` 게이트는 손대지 않음.
|
||||
|
||||
### 배치 좌표 근거 (`Lobby.prefab` 정적 실측 — Play 세션 무접촉)
|
||||
- 점유: `Button_Play` 중심 (540,292)·455x194 / `Button_Gacha` (540,514) / `Character` x[262,855] y[592,1225] / `Shadow` y[530,713] / `BannerFrame03` y[1629,1746] / `Topbar` y[1803,1920] / `BottomBar_Menu` y[0,179] / `Button_Chat` x[40,140] y[244,337]
|
||||
- **교차 검증**: 산출한 `Button_Gacha` 중심 (540, **514.2**) 가 §107 의 Unity MCP 실행 중 실측 (540, **514**) 와 일치 — 좌표계 모델 정합 확증.
|
||||
- 임시 패널 = x[12,238] · y[720,1520] (좌측 세로 1열). `Character` 좌변 262 보다 24px 왼쪽에서 끝나고 `Shadow` 상단 713 보다 7px 위에서 시작. `BuildLobby` 가 이미 숨기는 `Button_Friends`·`Button_Gift_Divided` 자리 재활용.
|
||||
|
||||
### 검증 (신 표준 — 경고 목록 본문 직접 인용)
|
||||
- Roslyn 실컴파일(`Assembly-CSharp` 전량 774 소스, Unity 6000.3.19f1 csc): **에러 0**
|
||||
- 경고 6건 **전부 기존분·신규 0건** (착수 전 baseline 도 6건 동일):
|
||||
- `Assets/Script/Core/Patterns/Singleton.cs(52,40)` CS0618 — `FindObjectOfType(Type)` obsolete
|
||||
- `Assets/Script/Core/Patterns/Singleton.cs(54,29)` CS0618 — `FindObjectsOfType(Type)` obsolete
|
||||
- `Assets/Script/UGUI/UGUIBattleSceneUIController.cs(112,17)` CS0618 — `FindObjectOfType<T>()` obsolete
|
||||
- `Assets/Script/UGUI/UGUILobbySceneUIController.cs(152,17)` CS0618 — `FindObjectOfType<T>()` obsolete
|
||||
- `Assets/Script/Survival/SurvivalLobbyController.cs(97,17)` CS0618 — `FindObjectOfType<T>()` obsolete (기존 L95, 삽입 2줄만큼 이동)
|
||||
- `Assets/Script/Core/Patterns/Singleton.cs(10,29)` CS0414 — `applicationIsQuitting` 미사용
|
||||
- **자체 발생 경고 1건 제거**: 1차 컴파일에서 `TempNav.cs(70,34)` **CS0162 도달 불가 코드** 발생 — 제거 스위치를 `const bool` 로 두면 컴파일러가 분기를 접는 탓. `static readonly bool` 로 전환해 해소(스위치 기능은 동일).
|
||||
- **런타임 미검증**: PD 플레이테스트 중이라 Play 제어 금지 — 코드·컴파일 레벨까지만 확증. 실제 클릭 동작은 미실증.
|
||||
|
||||
### 미해소 한계 (고의·PD 고지 대상)
|
||||
- 우회 범위는 **화면 열기**까지다. 실제 뽑기 실행(`OnClickGachaFree`·`OnClickGachaProduct`·`.Gacha.cs` L352·L375·L420)에는 `IsGachaUnlocked()` 검사가 그대로 살아 있어 **영웅레벨 3 미만이면 여전히 Toast 만 뜬다**. 고지 없으면 PD 가 "뽑기 고장"으로 오진할 수 있음(§105 `feedback_truncated_output_false_diagnosis` 패턴 재현 위험) → **실행 경로 안내 병기**: 임시 메뉴 → 성장 → 영웅레벨 3 달성 시 정상 해제.
|
||||
- 임시 패널은 `_lobby` 자식이라 상점·영웅 화면으로 넘어가면 사라진다. 복귀 = 하단 "홈". 의도된 동작(정식 패널 레이아웃 무침범).
|
||||
|
||||
### C2 proxy 표시 (의무 이행)
|
||||
본 패널은 **proxy(임시 우회)**다. **근본 해결 = PD 정식 로비 레이아웃 수령 후 하단 메뉴 Button_02·05 정식 배선**(§104·§106 이월 안건). 임시물의 관성 영구화를 막기 위해 **철거 조건을 코드 헤더 주석에 명문화**: 본 파일 + `.meta` 삭제 → `Start()` 의 `BuildTempNav();` 1줄 삭제. 임시 off 는 `TempNavEnabled = false` 1곳.
|
||||
|
||||
### 기각안
|
||||
- **(기각) 게이트 상수 자체를 낮추거나 세이브 HeroLevel 을 주입** — 설계 사양·PD 데이터 훼손. 확인 목적에 비해 부작용 과다.
|
||||
- **(기각) 실행 게이트까지 우회** — 지시 문언("열리게")의 외연 초과 + 가챠 확률·천장 로직을 미해금 상태로 돌려 세이브를 오염시킨다.
|
||||
- **(기각) 씬·프리팹에 버튼 직접 배치** — PD 플레이테스트 중 + 정식 레이아웃 수령 시 철거 비용 급증. 코드 생성 UI 로 한정.
|
||||
- **(기각) 캔버스 루트에 상시 표시** — 상점·영웅 패널 레이아웃을 침범. `_lobby` 자식으로 한정.
|
||||
|
||||
### pm-auditor 판정 반영 (C35-1 #2 사전 호출·판정 도착)
|
||||
- **Major ① 빌드 순서**: "`BuildLobby()` 말미 삽입 시 `_hero`·`_growthPanel` 등이 전부 null" 지적 수용 → 호출 위치를 **`Start()` 의 `BuildHero()` 직후**로 이동. (실측 반론: 본 구현은 빌드 시점에 해당 필드를 역참조하지 않고 람다로만 캡처하므로 현행 코드 기준 오동작은 없었다. 다만 향후 널가드 추가 시 무증상 실패 위험이 실재하여 **방어적으로 수용**. PM 지시 문언 "`BuildLobby()` 말미"와의 차이는 최종 보고에 명시.)
|
||||
- **Major ② P19 미등재**: 2026-08-25 PD 지시 트래킹 로그 등재 완료(BT13-GodDem 행).
|
||||
- **Major ③ 게이트 잔여 한계 고지**: 위 "미해소 한계" 절 + 최종 보고 반영.
|
||||
- **Minor 커밋 범위**: `git add -A` 미사용 — 3 파일 **명시 스테이징**. 무관한 asset churn 6건(폰트 3·DOTween·ONEMobilePOP·PanelSettings) 무접촉·스테이징 제외 유지(커밋 후 재확인 완료).
|
||||
- **★ C6 백업 판정 — 감사관 전제와 실제 집행 불일치(정정)**: 감사관은 "백업 금지(`Assets/` 하위에 `.cs` 로 생기면 중복 컴파일 CS0111 + git 추적)"로 판정했으나, **실제 백업 경로는 `E:/BurningTimes/공유/개발팀_백업/GodDem/` = Unity 프로젝트 밖**이라 컴파일 대상이 아니고, BT `.gitignore:66 *.bak_*` 로 **추적도 되지 않는다**(`git check-ignore` 실증·기존 `.cs` 백업 14건 tracked 0). 즉 감사관이 지적한 두 위험 모두 본 집행에는 **비해당**. C6-1 표준 경로를 그대로 지킨 것이 정답이며, 감사관 권고("백업하지 말 것")는 **`Assets/` 내부에 백업을 두는 경우에 한해 유효**. → 조직 노하우로는 "C6 백업은 **레포 밖 표준 경로**에 둔다(Unity `Assets/` 하위 금지)"가 정확한 형태.
|
||||
- **Minor 대화로그 파티션**: 본 엔트리 서두 주석 참조 — PM 지시 우선, 분리 여부 이월.
|
||||
|
||||
### 산출물
|
||||
- GodDem 로컬 커밋 **`5403caa`** (3 파일·228 insertions) — `SurvivalLobbyController.TempNav.cs`(신규)·동 `.meta`(GUID 자체 생성 `d57f18e0...`·Unity 미리프레시 상태 보완)·`SurvivalLobbyController.cs`(`Start()` 1줄). **push 미실시 = PM 영역**. BT 레포 커밋 없음.
|
||||
- 백업 `공유/개발팀_백업/GodDem/SurvivalLobbyController.bak_20260825_0123.cs`
|
||||
- **PD 안내(필수)**: 신규 `.cs` 추가로 **재컴파일·도메인 리로드**가 발생해 진행 중이던 Play 세션이 끊긴다. Play 중지 → 재생 1회 필요(자동 리프레시가 걸리지 않으면 Ctrl+R).
|
||||
|
||||
## 109. 임시 진입 버튼 push·PM 처리 (PM·2026-08-25)
|
||||
|
||||
- **PM push**: GodDem `f054519..5403caa` origin 반영 — 로비 좌측 "임시 메뉴" 7종(성장·장비강화·스킬마스터리·뽑기·합성·상점·영웅). 좌표는 Lobby.prefab 정적 파싱으로 산출(Button_Gacha 중심 540,514.2 = PM MCP 실측 540,514 일치 → 좌표계 모델 교차 검증)·기존 UI 무충돌 x[12,238] y[720,1520]
|
||||
- **잔여 한계 (PD 고지 필수)**: 게이트 우회는 **화면 열기까지**만 — `OnClickGachaFree`/`OnClickGachaProduct` 내부 `IsGachaUnlocked()` 3개소가 살아 있어 **실제 뽑기 실행은 HeroLevel 0에서 여전히 차단**. 임시 메뉴→성장→영웅레벨 3 달성 시 정상 해제
|
||||
- **지시 이탈 3건 PM 판정**: ①호출 위치 `BuildLobby()` 말미 → `Start()`의 `BuildHero()` 직후(감사관 Major 수용·방어적 이동) = **PM 승인**(현행 동작 동일·향후 널가드 추가 시 무증상 실패 예방) ②대화로그 08-24 §108 유지(집행일 08-25) = **PM 승인**(연속 맥락 우선·차기 엔트리부터 08-25 파일 신설) ③**C6 백업 유지 = PM 승인·감사관 전제 오류 확인**: 백업 경로가 Unity 프로젝트 **외부**(`E:/BurningTimes/공유/개발팀_백업/GodDem/`)라 CS0111 중복 컴파일 비해당·`.gitignore:66 *.bak_*` 추적 제외 실증(기존 .cs 백업 14건 tracked 0). **감사 권고의 정확한 형태 = "백업을 Unity `Assets/` 하위에 두지 말 것"**이며 C6-1 표준 경로 자체는 무결
|
||||
- **C2 표시**: 본 패널은 **proxy(임시)** — 근본 해결 = PD 정식 레이아웃 수령 후 하단 `Button_02`·`05` 정식 배선. 철거 조건을 코드 헤더 주석에 명문화(파일 삭제 + 호출 1줄 제거)
|
||||
- 검증: Roslyn 실컴파일 에러 0·**신규 경고 0**(baseline 6건 동일: Singleton 52/54/10·UGUIBattleSceneUIController 112·UGUILobbySceneUIController 152·SurvivalLobbyController 97). 런타임 미검증(PD 세션 보호로 Play 제어 금지)
|
||||
|
|
|
|||
Loading…
Reference in New Issue