BT5-Dev #54: Foreground TilemapCollider2D 제거 — 시각만 표시 (PD 단순 제안 채택)

PD 결정 (2026-05-07): "그냥 단순히 Foreground에 충돌체크만 없애면 되지 않을까?"

변경:
- BT47 Foreground TilemapCollider2D 자동 부착 영역 폐기
- 기존 TilemapCollider2D Object.Destroy
- fgTilemap·fgTc null 유지 → 자동 분류(§83~) + 사후 복원(§129~) 자동 skip
- Foreground GameObject Layer 16 유지 (시각 정합)

영향 (PD 사전 명시 + 인지):
- 모든 Foreground Tile 충돌 X = 발판 위 착지 X (Drop-Through 패턴 폐기)
- BT47부터 자동 분류로 Foreground에 누적된 Tile들 = 시각만·자유 통과
- Level Tilemap (TileGround·TileGroundTop 1266개)만 영구 충돌 유지

본 PM 5회 가설 누적 부정확 후 PD 직접 단순 해결 채택:
- BT49 None 차단 (효과 X·restored=0)
- BT50 Grid→Sprite 강제 (효과 X·forced=0)
- BT51 사후 Grid→Sprite 폐기 (효과 X·restored=0)
- BT52 TileFloating* 단일 (decor=0 부정확)
- BT53 카탈로그 8종 확장 (decor=1 부정확·1266개 미식별)
→ PD 단순 제안 = 5회 가설 모두 우회

롤백 경로 (pm-auditor 권고):
- BT47 자동 분류 영역 + 사후 복원 영역 코드 보존 (fgTilemap null check skip만 추가)
- 회귀 시 fgTc 자동 부착 영역 회복 → 자동 분류 재가동 가능

후속 의무:
- PD Refresh+Play 시각 검증 + 본 PM Editor.log direct read
- 발판 위 착지 보존 의도 시 BT54 회귀 또는 카탈로그 v1.2 전환

Debug.Log: 자동 분류·사후 복원 출력 모두 fgTilemap null로 skip → BT54 시점 출력 X
This commit is contained in:
깃 관리자 2026-05-07 23:17:57 +09:00
parent 0d6b78cc3a
commit bbf7041676
1 changed files with 9 additions and 4 deletions

View File

@ -68,16 +68,21 @@ namespace Platformer.Mechanics
if (appliedNames.Count < 8) appliedNames.Add($"{c.gameObject.name}({c.GetType().Name})");
}
// BT47 — Foreground TilemapCollider2D + Layer 16 (ColliderType Sprite 강제는 Tile 이동 후 한 번에 처리)
// BT54 — PD 제안 채택 (2026-05-07): "그냥 단순히 Foreground에 충돌체크만 없애면 되지 않을까?"
// Foreground Tilemap = 시각만 (TilemapRenderer + Layer 16). TilemapCollider2D 자동 부착 폐기.
// 영향: 모든 Foreground Tile 충돌 X = 발판 위 착지 X (Drop-Through 패턴 폐기·시각만 표시).
// 자동 분류 영역(§83~) 및 사후 복원 영역(§129~)은 fgTilemap null/fgTc null 시 자동 skip.
// PD 시각 검증 후 발판 위 착지 보존 의도 시 BT54 회귀 또는 카탈로그 v1.2 전환.
var foreground = GameObject.Find("Foreground");
UnityEngine.Tilemaps.Tilemap fgTilemap = null;
UnityEngine.Tilemaps.TilemapCollider2D fgTc = null;
if (foreground != null)
{
fgTc = foreground.GetComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
if (fgTc == null) fgTc = foreground.AddComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
foreground.layer = 16;
fgTilemap = foreground.GetComponent<UnityEngine.Tilemaps.Tilemap>();
// 기존 TilemapCollider2D 제거 (PD 제안 — 충돌 X)
var existingFgTc = foreground.GetComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
if (existingFgTc != null) Object.Destroy(existingFgTc);
// fgTilemap·fgTc null 유지 = 자동 분류 + 사후 복원 영역 자동 skip
}
// BT53-A1 — 자동 분류 카탈로그 확장 (PD 옵션 A1 채택 2026-05-07).