BT5-Dev #82: PD Foreground TilemapCollider 부착 회복 (Enemy 떨어짐 정정)
PD 보고 (2026-05-08): "여전히 몬스터가 낭떠러지로 사라졌어" 근본 원인: - BT66 R2 영역에서 PD Foreground TilemapCollider2D Object.Destroy - = PD 직접 그린 발판 영역 위에 Enemy 배치 시 발 아래 충돌 X = 떨어짐 - BT81 절벽 검출 영역 = footAhead Raycast Layer 0+16. PD Foreground = TilemapCollider X = Raycast 검출 X = 절벽 영역 인식 X = 떨어짐 정정 (BT82): - BT66 R2 영역의 PD Foreground TilemapCollider2D Destroy 영역 폐기 - TilemapCollider2D 부착 회복 + Layer 16 강제 (AutoForeground와 동일) 효과: - Player ↔ PD Foreground = Drop-Through 패턴 영역 정상 (통과·착지 분기) - Enemy ↔ PD Foreground = 충돌 ON (Layer 14 ↔ Layer 16) = 떨어짐 X - Enemy 절벽 검출 = PD Foreground·AutoForeground 모두 Layer 16 + TilemapCollider = 정합 후속 의무: - PD Refresh+Play 시각 검증 (Enemy 떨어짐 X·Player 통과 영역 그대로)
This commit is contained in:
parent
cbde93a66d
commit
4d83bbc028
|
|
@ -69,12 +69,15 @@ namespace Platformer.Mechanics
|
|||
applied++;
|
||||
}
|
||||
|
||||
// 2. PD Foreground = 가림막 시각만 (TilemapCollider2D 제거 → 충돌 X).
|
||||
// 2. PD Foreground = 가림막 시각 + TilemapCollider 부착 (BT82 정정·PD 보고: Enemy 떨어짐).
|
||||
// 이전 BT66 R2의 Object.Destroy 폐기 — Player는 Drop-Through 패턴 영역에서 통과·착지 분기 / Enemy는 충돌 ON.
|
||||
// Layer 16 강제 (AutoForeground와 동일·Drop-Through 패턴 적용).
|
||||
var pdForeground = GameObject.Find("Foreground");
|
||||
if (pdForeground != null)
|
||||
{
|
||||
pdForeground.layer = 16;
|
||||
var pdFgTc = pdForeground.GetComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
|
||||
if (pdFgTc != null) Object.Destroy(pdFgTc);
|
||||
if (pdFgTc == null) pdFgTc = pdForeground.AddComponent<UnityEngine.Tilemaps.TilemapCollider2D>();
|
||||
}
|
||||
|
||||
// 3. AutoForeground GameObject (Grid 자식·신규) — 자동 분류 발판 전용.
|
||||
|
|
|
|||
Loading…
Reference in New Issue