From 1ab60ed0c3b7c76fe8d715b7ba4581d00aaf0c62 Mon Sep 17 00:00:00 2001 From: swrring Date: Thu, 14 May 2026 22:08:50 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20A06=20=EB=8F=85=20=EB=8A=AA=20?= =?UTF-8?q?=EB=93=B1=20Effector=20trigger=20collider=20=ED=86=B5=EA=B3=BC?= =?UTF-8?q?=20(PD=20=EC=A7=84=EB=8B=A8=202026-05-14)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 보고 + Console 로그 결정적: "[Projectile][WallHit-OnTrigger] cardId=A02 other=PoisonSwamp_Collider parent=FX_Venom_Swamp(Clone) layer=0(Default) isTrigger=True pos=(-7.30, -0.30, 0.00) dist=5.00/8" 원인: 직전 commit 708ba08 isWall = (Layer 0) 정정 후에도 A06 독 늪 PoisonSwamp_Collider (Layer 0 + isTrigger=true) 가 Wall 판정 통과 → 빠른 투사체 (A02 dist=5/8 = 62.5%) 조기 SelfDestruct. 느린 A13 정상은 0.1초 grace 통과 + 짧은 거리 우연 회피. 정정: - isWall = (Layer 0) && !other.isTrigger - Level Tilemap (non-trigger) 만 Wall 차단 - Effector spawn trigger collider (A06 독 늪·CinemachineConfiner· Token·DeathZone·기타 Layer 0 Trigger) 모두 통과 Wall OverlapPoint (Update L186) 영역 이미 filter.useTriggers=false 로 trigger 제외 정합 — 변경 불필요. 진단 Debug.Log 2건 회수 (목적 달성). 검증 (PD Play 확인 필요): - A02 (속도 6)·A08·A14·A15 빠른 투사체 MaxRange 까지 정상 비행 - 독 늪 범위 통과 - Level Tilemap 벽 충돌 시 SelfDestruct 유지 Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Skills/Effectors/Projectile.cs | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index 47d836c..0cf060d 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -193,15 +193,6 @@ namespace EerieVillage.Skills.Effectors int hitCount = Physics2D.OverlapPoint(transform.position, filter, results); if (hitCount > 0) { - // PD 지시 2026-05-14 — 빠른 투사체 맵 경계 멈춤 진단 — OverlapPoint hit 정보 출력 - var hit = results[0]; - Debug.Log("[Projectile][WallHit-OverlapPoint] cardId=" + _data.CardId - + " hit=" + (hit != null ? hit.gameObject.name : "?") - + " parent=" + (hit != null && hit.transform.parent != null ? hit.transform.parent.name : "ROOT") - + " layer=" + (hit != null ? hit.gameObject.layer : -1) - + " pos=" + transform.position - + " dist=" + Vector2.Distance(transform.position, _spawnPosition).ToString("F2") - + "/" + _maxRange); SelfDestruct(); } } @@ -278,21 +269,15 @@ namespace EerieVillage.Skills.Effectors // 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. + // 회귀 정정. Wall = Layer 0 (Level Tilemap·메인 ground) + non-trigger 만 SelfDestruct. // Floating 발판은 Player·Enemy 점프 통과 의도이며 Projectile 도 통과 정합. + // PD 지시 2026-05-14 — A06 독 늪 PoisonSwamp_Collider (Layer 0·isTrigger=true) 등 + // Effector spawn trigger collider 가 OnTrigger Wall 판정에 걸려 빠른 투사체 조기 SelfDestruct + // 회귀 → !isTrigger 추가. Level Tilemap (non-trigger) 만 Wall 차단. int otherLayer = other.gameObject.layer; - bool isWall = (otherLayer == 0); + bool isWall = (otherLayer == 0) && !other.isTrigger; if (isWall) { - // PD 지시 2026-05-14 — 빠른 투사체 맵 경계 멈춤 진단 — Wall hit collider 정보 출력 - Debug.Log("[Projectile][WallHit-OnTrigger] cardId=" + _data.CardId - + " other=" + other.gameObject.name - + " parent=" + (other.transform.parent != null ? other.transform.parent.name : "ROOT") - + " layer=" + otherLayer + "(" + UnityEngine.LayerMask.LayerToName(otherLayer) + ")" - + " isTrigger=" + other.isTrigger - + " pos=" + transform.position - + " dist=" + Vector2.Distance(transform.position, _spawnPosition).ToString("F2") - + "/" + _maxRange); SelfDestruct(); } }