BT5-Dev #65: BT64 폐기·BT63 회귀 (PD 명시 채택 + 본 PM 진단)

PD 명시 (2026-05-08): "직전 상태로 되돌려" + "에디터 상태에서는 박스 쳐진 가림막 부분만 Foreground인데 어째서 발판까지 영향을 받는거지?"

변경: fgTc.enabled = false 라인 제거 = BT63 정확 회귀.

본 PM 진단 (PD 의문 답변):

근본 원인 — 본 PM의 자동 분류 코드가 PD의 시각 분리 의도 침범:
- PD 의도: Foreground GameObject = PD 직접 그린 가림막 영역만 (시각 배경)
- 본 PM 코드 (BT47/BT48): Level Tile들을 GameObject.Find('Foreground') 영역으로 자동 이동 (SetTile)
- 결과: PD 가림막 + 본 PM 자동 분류 발판이 같은 Foreground GameObject 영역 혼재
- BT64 fgTc.enabled=false: 모든 Foreground Tile 충돌 X = 발판도 충돌 X = PD 보고 영역

= 자동 분류 영역이 PD 시각 분리 의도 침범 = 본 PM 핵심 오해.

PM 권고 (PD 결정 영역):
- 옵션 1: 자동 분류 영역 폐기 + PD가 발판 영역 직접 Tile Palette로 그리기 (표준 Unity 워크플로우)
- 옵션 2: 자동 분류 결과를 별도 GameObject (예: AutoForeground)에 SetTile = PD Foreground 분리
- 옵션 3: BT63 + 가림막 Tile asset (예: MidgroundFiller) 자동 식별 + 분리

후속 의무:
- PD 결정 영역 명시 후 본 PM 즉시 집행
- BT49~BT64 누적 16회 변경 영역 영구 폐기 의무
This commit is contained in:
깃 관리자 2026-05-08 00:07:32 +09:00
parent a7974cd58b
commit dba99d21dc
1 changed files with 1 additions and 4 deletions

View File

@ -69,9 +69,7 @@ namespace Platformer.Mechanics
} }
// BT47 — Foreground TilemapCollider2D + Layer 16 (ColliderType Sprite 강제는 Tile 이동 후 한 번에 처리) // BT47 — Foreground TilemapCollider2D + Layer 16 (ColliderType Sprite 강제는 Tile 이동 후 한 번에 처리)
// BT64 — PD 명시 (2026-05-08): "Grid 자식 Foreground = Player와 충돌하지 않도록" // BT65 — PD 명시 (2026-05-08): "직전 상태로 되돌려" = BT64 폐기 → BT63 회귀.
// TilemapCollider2D 부착·자동 분류 SetTile·SetColliderType은 그대로 유지(BT63 영역 보존),
// 그러나 enabled=false로 Player와 물리 충돌만 차단. data·렌더 영역 영향 0.
var foreground = GameObject.Find("Foreground"); var foreground = GameObject.Find("Foreground");
UnityEngine.Tilemaps.Tilemap fgTilemap = null; UnityEngine.Tilemaps.Tilemap fgTilemap = null;
UnityEngine.Tilemaps.TilemapCollider2D fgTc = null; UnityEngine.Tilemaps.TilemapCollider2D fgTc = null;
@ -81,7 +79,6 @@ namespace Platformer.Mechanics
if (fgTc == null) fgTc = foreground.AddComponent<UnityEngine.Tilemaps.TilemapCollider2D>(); if (fgTc == null) fgTc = foreground.AddComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
foreground.layer = 16; foreground.layer = 16;
fgTilemap = foreground.GetComponent<UnityEngine.Tilemaps.Tilemap>(); fgTilemap = foreground.GetComponent<UnityEngine.Tilemaps.Tilemap>();
fgTc.enabled = false; // BT64 — Foreground 충돌 차단 (PD 명시)
} }
// BT48 — Level → Foreground 자동 분류 강화. 분류 조건 2종 결합: // BT48 — Level → Foreground 자동 분류 강화. 분류 조건 2종 결합: