From 708ba087edf23d897cf0f65a28909f76a8191eeb Mon Sep 17 00:00:00 2001 From: swrring Date: Thu, 14 May 2026 22:00:22 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20Floating=20=EB=B0=9C=ED=8C=90?= =?UTF-8?q?=20=ED=86=B5=EA=B3=BC=20=EC=A0=95=EC=A0=95=20=E2=80=94=20Wall?= =?UTF-8?q?=20=ED=8C=90=EC=A0=95=20Layer=200=20only=20(PD=20=EC=A7=80?= =?UTF-8?q?=EC=8B=9C=202026-05-14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 보고: "화면 스크롤이 되는 위치에 투사체가 날아가다가 충돌되면서 원래 사거리만큼 날아가지 못하는 현상 수정해줘" 원인: Projectile.OnTriggerEnter2D L272 isWall 판정에 Layer 16 (Foreground·Floating 발판) 포함. 화면 스크롤 시 노출되는 Floating_T*_* 발판 18개 (BoxCollider2D non-trigger) 와 Projectile (trigger collider) 통과 순간 OnTriggerEnter2D 발화 → SelfDestruct. 정정: - isWall = (otherLayer == 0) // Level Tilemap 만 (Layer 16 제외) - Floating 발판은 Player·Enemy 점프 통과 의도이며 Projectile 도 통과 정합. Wall OverlapPoint (Update L186) 영역 WallLayerMask = (1<<0) 으로 이미 Layer 0 만 catch — 정합 유지. 검증 (Play 모드): - A02 MaxRange=8 Speed=6 - FX_Fireball_Bullet(Clone) spawn 정합 - isWall 판정 Layer 0 only — Floating Layer 16 통과 보장 Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Skills/Effectors/Projectile.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index 6157682..f64dc2e 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -268,8 +268,11 @@ namespace EerieVillage.Skills.Effectors // BT12-Dev 2026-05-10 (PD #2) — 벽 충돌 시 SelfDestruct. // Layer 0 (Default·Ground) · Layer 16 (Foreground·발판) 영역 영역 Tilemap·Composite·Box collider 영역 정합. // 레이저 영역 영역 영역 영역 영역 X — 본 Projectile 영역 영역 (영역 영역 영역 영역 X) — 모든 Projectile 영역 SelfDestruct. + // PD 지시 2026-05-14 — 화면 스크롤 시 Floating 발판 (Layer 16 Foreground) 통과 후 SelfDestruct + // 회귀 정정. Wall = Layer 0 (Level Tilemap·메인 ground) 만 SelfDestruct. + // Floating 발판은 Player·Enemy 점프 통과 의도이며 Projectile 도 통과 정합. int otherLayer = other.gameObject.layer; - bool isWall = (otherLayer == 0 || otherLayer == 16); + bool isWall = (otherLayer == 0); if (isWall) { SelfDestruct();