BT5-Dev #64: Foreground TilemapCollider2D enabled=false (PD 명시 채택)

PD 명시 (2026-05-08): "BT63이 내가 원했던 기본 상태야. 이제 Grid 오브젝트의 자식 오브젝트인 Foreground가 플레이어와 충돌하지 않도록만 해봐"

변경 (BT63 영역 + 1행 추가):
- Foreground TilemapCollider2D 자동 부착 그대로 유지 (BT47 영역)
- 자동 분류 SetTile + SetColliderType 그대로 유지 (BT48·BT63 영역)
- 부착 직후 fgTc.enabled = false → 물리 충돌만 차단

효과:
- Foreground GameObject = Player와 충돌 X (PD 명시 정합)
- TilemapRenderer 시각 표시 그대로 (Layer 16·SortingOrder=5)
- Tile data·SetColliderType 영역 그대로 (BT63 영역 보존·롤백 가능)
- Level Tilemap = 영구 충돌 (지면·발판 역할)

미적용 (의도적):
- Object.Destroy 폐기 (data 보존·롤백 경로)
- Layer Matrix 변경 폐기 (Project Settings 영역 영향 X)

후속 의무:
- PD Refresh+Play 시각 검증
- 본 PM Editor.log [BT48-MoveTiles] direct read
- 정합 시 BT49~BT61 영구 폐기·feedback 메모리 등재
This commit is contained in:
깃 관리자 2026-05-08 00:04:31 +09:00
parent bfb5832aac
commit a7974cd58b
1 changed files with 4 additions and 0 deletions

View File

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