From dba99d21dceaf810b8420b65568ba34e6929bb49 Mon Sep 17 00:00:00 2001 From: swrring Date: Fri, 8 May 2026 00:07:32 +0900 Subject: [PATCH] =?UTF-8?q?BT5-Dev=20#65:=20BT64=20=ED=8F=90=EA=B8=B0?= =?UTF-8?q?=C2=B7BT63=20=ED=9A=8C=EA=B7=80=20(PD=20=EB=AA=85=EC=8B=9C=20?= =?UTF-8?q?=EC=B1=84=ED=83=9D=20+=20=EB=B3=B8=20PM=20=EC=A7=84=EB=8B=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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회 변경 영역 영구 폐기 의무 --- Assets/Scripts/Mechanics/GameOptimizer.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Assets/Scripts/Mechanics/GameOptimizer.cs b/Assets/Scripts/Mechanics/GameOptimizer.cs index 7741a15..2758419 100644 --- a/Assets/Scripts/Mechanics/GameOptimizer.cs +++ b/Assets/Scripts/Mechanics/GameOptimizer.cs @@ -69,9 +69,7 @@ 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. + // BT65 — PD 명시 (2026-05-08): "직전 상태로 되돌려" = BT64 폐기 → BT63 회귀. var foreground = GameObject.Find("Foreground"); UnityEngine.Tilemaps.Tilemap fgTilemap = null; UnityEngine.Tilemaps.TilemapCollider2D fgTc = null; @@ -81,7 +79,6 @@ namespace Platformer.Mechanics if (fgTc == null) fgTc = foreground.AddComponent(); foreground.layer = 16; fgTilemap = foreground.GetComponent(); - fgTc.enabled = false; // BT64 — Foreground 충돌 차단 (PD 명시) } // BT48 — Level → Foreground 자동 분류 강화. 분류 조건 2종 결합: