10 KiB
10 KiB
BT12-MVP-A Phase 2-B — PD Editor 직접 가이드 (B Prefab + C Scene 통합)
작성: 총괄PM (dev-team-lead Phase 1 보고서 §1-3·§2 인용) 일자: 2026-05-08 대상: PD Editor 영역 직접 작업 범위: SkillSelectionCanvas.prefab + Ingame.unity Scene 통합
0. 배경
BT12-MVP-A Phase 2-B 잔여 3 영역 중:
- A. asset 5장 = ✅ 완료 (EerieVillage commit
755a51c영역) - B. SkillSelectionCanvas.prefab = 본 가이드 §2
- C. Scene 통합 = 본 가이드 §3
dev-team-lead Phase 1 권고 = B·C 영역 PD Editor 직접 (Unity Editor 시각 검증·layout 정밀 영역). yaml 직접 Write = 회귀 위험 큼·비권고.
1. 사전 환경 점검
| 점검 | 정합 |
|---|---|
EerieVillage 영역 git pull (commit 755a51c까지) |
의무 |
| Unity Editor 영역 EerieVillage 프로젝트 열기 | 의무 |
| Asset Refresh (Ctrl+R) | 의무 — asset 5장 import 확증 |
| Console 영역 error 0건 | 의무 |
Project 패널 영역 Assets/Data/SkillPlaceholders/ 영역 5장 표시 정합 |
검증 |
2. B 영역 — SkillSelectionCanvas.prefab 작성
2-1. 신규 Prefab 생성
- Project 패널 →
Assets/Prefabs/UI/폴더 우클릭 → Create → Prefab Variant 또는 Create Empty Prefab - 파일명:
SkillSelectionCanvas - 더블클릭 → Prefab 편집 모드
2-2. Hierarchy 구조 (dev-team-lead §1-3 정합)
SkillSelectionCanvas (root)
├ Canvas (Screen Space - Overlay·Sort Order=200)
├ CanvasScaler (Scale With Screen Size·1080×1920·Match=0.5)
├ GraphicRaycaster
├ SkillSelectionUI (script·MyUI namespace)
│
└ SkillSelectionPanel (자식)
├ Image (반투명 검정 r:0 g:0 b:0 a:0.78)
├ RectTransform (stretch-stretch·offset 0,0,0,0)
│
├── Header
│ ├ TitleText (TextMeshProUGUI·"기술 선택"·48pt·Bold·Center)
│ └ CloseButton (Button + Image + TextMeshProUGUI "✕")
│
├── CardArea (HorizontalLayoutGroup·spacing 40)
│ ├ SkillCardSlot1 (자식 8개·아래 §2-3 영역)
│ ├ SkillCardSlot2
│ └ SkillCardSlot3
│
└── Footer
├ PointText (TextMeshProUGUI·"남은 포인트: 1")
└ ConfirmButton (Button + TextMeshProUGUI "확인")
2-3. SkillCardSlot 자식 영역 (3 슬롯 동일)
각 SkillCardSlot 영역 8 자식 + SkillCardSlot 스크립트 부착:
- TopBanner (Image) — 상단 색상 배너 (등급별 자동 변경)
- NameText (TextMeshProUGUI) — 카드 이름 한글
- IconArea (GameObject 부모)
- GlowEffect (Image) — 동심원 빛
- Icon (Image) — 원형 아이콘
- LevelText (TextMeshProUGUI) — "레벨 N" 또는 "최대"
- DescriptionText (TextMeshProUGUI) — 효과 설명 3~4 라인
- ClickArea (Button) — 전체 카드 영역 stretch
- HighlightFrame (Image·기본 inactive) — 선택 시 활성
2-4. SkillSelectionUI 스크립트 영역 reference 매핑
Inspector 영역 SkillSelectionUI component 영역 다음 18 field 영역 reference 매핑:
| Field | 매핑 대상 |
|---|---|
_rootPanel |
SkillSelectionPanel GameObject |
_titleText |
Header → TitleText |
_closeButton |
Header → CloseButton |
_slot1 |
CardArea → SkillCardSlot1 |
_slot2 |
CardArea → SkillCardSlot2 |
_slot3 |
CardArea → SkillCardSlot3 |
_pointText |
Footer → PointText |
_confirmButton |
Footer → ConfirmButton |
2-5. SkillCardSlot 스크립트 영역 reference 매핑 (각 3 슬롯)
| Field | 매핑 대상 |
|---|---|
_topBanner |
TopBanner |
_nameText |
NameText |
_glowEffect |
IconArea → GlowEffect |
_icon |
IconArea → Icon |
_levelText |
LevelText |
_descriptionText |
DescriptionText |
_clickArea |
ClickArea (Button) |
_highlightFrame |
HighlightFrame |
2-6. 색상 영역 default (PD 예시 정합·SkillCardSlot.cs:34-36)
- Common 청록 = (0.30, 0.70, 0.70, 1.0)
- Rare 노랑 = (0.95, 0.70, 0.25, 1.0)
- Max 빨강 = (0.90, 0.30, 0.30, 1.0)
2-7. Sprite placeholder 영역
현 시점 sprite asset 부재 → 다음 fallback:
- 카드 배경 = Unity 기본 white sprite + 색상 변경 또는 9-slice null
- 원형 아이콘 = Unity 기본
Knobsprite 또는UISpritefallback - 동심원 빛 = sprite null →
_glowEffect.enabled = false(SkillCardSlot.cs 영역 자동 처리) - 아이콘 영역 자체 =
{fileID: 0}(asset 영역 정합) →_icon.enabled = false자동
2-8. Prefab 저장
- Prefab 편집 모드 → Save (Ctrl+S)
- Project 패널 영역
Assets/Prefabs/UI/SkillSelectionCanvas.prefab정합 확증
3. C 영역 — Scene Ingame.unity 통합
3-1. Scene 열기
- Project →
Assets/Scenes/Ingame.unity더블클릭 - Hierarchy 영역 기존 GameObject 카탈로그 확증 (Player·Enemies·Foreground·IngameCanvas 등)
3-2. [LevelUpManager] GameObject 추가
- Hierarchy 영역 root level 우클릭 → Create Empty
- 이름:
[LevelUpManager] - position: 0, 0, 0
3-3. LevelUpManager 컴포넌트 부착
[LevelUpManager]선택 → Inspector → Add ComponentLevelUpManager검색 → 부착- Inspector 영역 field 매핑:
_pool: 자식 SkillCardPool 영역 (다음 §3-4 영역)_ui: Scene 영역 SkillSelectionCanvas 인스턴스 영역 SkillSelectionUI component (다음 §3-5 영역)
3-4. SkillCardPlaceholderPool 컴포넌트 부착
[LevelUpManager]영역 자식 GameObject 생성 또는 동일 GameObject 영역 Add ComponentSkillCardPlaceholderPool검색 → 부착- Inspector 영역
_allCards(List) 영역:- Element 0 → Project 영역
A01_jineonbu.assetdrag - Element 1 →
A05_hagikjin.asset - Element 2 →
P01_bonghwanggyeok.asset - Element 3 →
P12_saengmyeongkkot.asset - Element 4 →
AW01_cheonbugyeongmun.asset
- Element 0 → Project 영역
3-5. SkillSelectionCanvas Prefab 인스턴스 추가
- Project →
Assets/Prefabs/UI/SkillSelectionCanvas.prefabHierarchy 영역 root level drag - 인스턴스 이름:
SkillSelectionCanvas(자동) - 인스턴스 영역 SkillSelectionUI component 영역 자동 정합 (Prefab 영역 reference 매핑 정합)
3-6. LevelUpManager _ui field reference 매핑
[LevelUpManager]선택 → Inspector → LevelUpManager component_uifield → Hierarchy 영역 SkillSelectionCanvas 인스턴스 → SkillSelectionUI component drag
3-7. Scene 저장
- File → Save Scene (Ctrl+S)
- Project 영역
Ingame.unity영역 변경 확증
4. 검증 영역
4-1. Editor 영역 시각 검증
- Hierarchy 영역
[LevelUpManager]+ SkillSelectionCanvas 정합 표시 - Inspector 영역 LevelUpManager
_pool·_ui정합 매핑 표시 - Inspector 영역 SkillCardPlaceholderPool
_allCards5장 표시 - Inspector 영역 SkillSelectionUI 18 field 정합 매핑 표시
- Inspector 영역 SkillCardSlot ×3 영역 8 field 각 정합 매핑 표시
4-2. Play 영역 검증
- Play 버튼
- 기존 게임플레이 정합 (Player·Enemy·Foreground 영역 회귀 X 확증)
- 적 처치 → Console 영역 출력:
[ExperienceSystem] OnEnemyKilled: +5 XP[PlayerProgression] GainXP: 5
- 누적 XP 영역 LevelXPTableLoader 영역 임계 도달 시:
[LevelUpManager] HandleLevelUp Lv.2- 화면 영역 SkillSelectionCanvas 표시 (3 카드 노출)
- Time.timeScale = 0 (게임 일시정지)
- 카드 클릭 → highlight 표시
- 확인 버튼 → SkillSelectionCanvas Hide·Time.timeScale = 1·게임 재개
4-3. 회귀 검증 (Phase 1 §5-1 영역 정합)
| 기존 영역 | 영향 X 확증 |
|---|---|
| Enemy 16 인스턴스 patrol | ✅ 정합 |
| Player 컨트롤 | ✅ 정합 |
| Foreground·Background·Tilemap | ✅ 정합 |
| 기존 IngameCanvas/IngameUI/IngameChoiceSkillUI | ✅ 별도 root Canvas (Sort Order 분리) |
| BT7-Dev 자동 발동 영역 (Time.timeScale 영역) | 검증 의무 (Phase 3 영역) |
5. 회귀 위험 영역
| 영역 | 등급 | 대응 |
|---|---|---|
| 신규 GameObject root level 추가 | 낮음 | 기존 fileID 영향 X |
| SkillSelectionCanvas Prefab 인스턴스 추가 | 낮음 | 신규 root Canvas |
| Time.timeScale = 0 영역 BT7-Dev 자동 발동 | 중 | Phase 3 영역 검증 |
| Player.prefab 영역 PlayerProgression 명시 부착 | X | 자동 부착 영역 (PlayerController.Awake cs:95-97) — 변경 불필요 |
| EnemyDeath ExperienceSystem hook | X | Phase 2-A 영역 정착 |
Scene Ingame.unity 영역 320,819 라인 영역 |
낮음 | 신규 추가만·기존 변경 X |
6. 후속 영역
6-1. PD 직접 작업 완료 후
- Unity Editor 영역 Scene 저장 (
Ingame.unity) - Prefab 저장 (
SkillSelectionCanvas.prefab) - EerieVillage 영역 git status 확증:
Assets/Prefabs/UI/SkillSelectionCanvas.prefab(신규)Assets/Prefabs/UI/SkillSelectionCanvas.prefab.meta(신규)Assets/Scenes/Ingame.unity(수정)
- PD 또는 PM 영역 commit·push (BT12-MVP-A Phase 2-B Editor 통합)
6-2. Phase 3 dev-team-lead 검증
- BT12-MVP-A 통합 검증 (Phase 1 + 2-A + 2-B asset + 2-B Editor 통합)
- 회귀 영역 (BT5-Dev·BT7-Dev·기존 IngameCanvas) 영역 영향 X 확증
- 60종 카드 효과 영역 (BT12-Dev 본격) 영역 진행 영역 결정
6-3. icon sprite asset 영역 차기
- placeholder sprite 5장 영역 (하트·검·방패·바람·달 등) 별도 영역 작업
- 5 asset 영역 icon field 영역 sprite reference 매핑
7. 관련 자료
- Phase 1 설계서: BT12-MVP-A_설계_v1.md §2 신규 컴포넌트·§5 UI Prefab 구조·§7 Phase 영역
- dev-team-lead Phase 1 분석 보고서: 본 세션 직전 호출 결과 (대화로그 영역 영구 보존)
- EerieVillage commit
755a51c: BT12-MVP-A Phase 2-B asset 5 정착 - EerieVillage commit
5b2b753: Phase 2-B 코드 (UI 컴포넌트 2 + LevelUpManager 통합) - EerieVillage commit
047661c: Phase 2-A 시스템 코드 + JSON 테이블
본 가이드 작성 = 총괄PM·dev-team-lead Phase 1 권고 정합·PD Editor 직접 영역 단계별 절차 영역.