diff --git a/Assets/Scripts/Mechanics/GameOptimizer.cs b/Assets/Scripts/Mechanics/GameOptimizer.cs index 1acca08..6e56801 100644 --- a/Assets/Scripts/Mechanics/GameOptimizer.cs +++ b/Assets/Scripts/Mechanics/GameOptimizer.cs @@ -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(); - if (fgTc == null) fgTc = foreground.AddComponent(); foreground.layer = 16; - fgTilemap = foreground.GetComponent(); + // 기존 TilemapCollider2D 제거 (PD 제안 — 충돌 X) + var existingFgTc = foreground.GetComponent(); + if (existingFgTc != null) Object.Destroy(existingFgTc); + // fgTilemap·fgTc null 유지 = 자동 분류 + 사후 복원 영역 자동 skip } // BT53-A1 — 자동 분류 카탈로그 확장 (PD 옵션 A1 채택 2026-05-07).