feat(BT12-Dev): 박스 시각화 ON + 맵 경계 멈춤 진단 로그 (PD 지시 2026-05-14)

PD 보고 2건:
1. "투사체 판정 범위를 다시 보여줘"
2. "파이어볼이나 저주의 화살과 같은 투사체 형태는 여전히 맵이
   연결되는 경계선을 넘지 못하고 제자리에서 멈추다가 소멸하고 있어.
   (단, 속도가 느린 투사체는 정상적으로 날아감)"

정정:
1. HitboxDebug.ShowDebugVisuals false → true
   - Range_Debug (파란 박스)·ProjectileHitbox_Debug (붉은 박스)·
     LaserHitbox_Debug·MeleeHitbox_Debug·Hitbox_Debug 일괄 노출.
   - SpriteRenderer.enabled toggle 만 — GameObject·LiveHitboxSync 부착 정상.

2. Projectile.OnTriggerEnter2D Wall hit 시 + Update Wall OverlapPoint
   hit 시 진단 Debug.Log 추가:
   - [Projectile][WallHit-OnTrigger] cardId·other.name·parent·layer·
     isTrigger·pos·dist/maxRange
   - [Projectile][WallHit-OverlapPoint] cardId·hit.name·parent·layer·
     pos·dist/maxRange

PD Play 후 Console "[Projectile][WallHit-*]" 로그 + 박스 시각으로
어떤 collider 가 빠른 투사체 (A02·A08·A14·A15) 를 차단하는지
정확 식별. 본 PM 후속 정정 시 회수 의무.

원인 가설: 직전 commit 708ba08 Layer 16 제외 후에도 잔존 →
다른 collider (CinemachineConfiner Trigger·InfiniteHorizontalGround
Left/Right 자식·Background segment 등) hit 가능성.
A13 (속도 2.5) 정상·A02 (속도 6)·A08 영역 차단 — 빠른 투사체에서만
재현 패턴 정합.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-14 22:06:15 +09:00
parent 708ba087ed
commit 4c00378d78
2 changed files with 21 additions and 3 deletions

View File

@ -8,9 +8,9 @@ namespace EerieVillage.Skills.Effectors
/// </summary>
public static class HitboxDebug
{
// PD 지시 2026-05-13 — 디버그 박스·사거리 박스 시각화 off (재활용 영역 true 설정 시 즉시 노출)
// GameObject·LiveHitboxSync 부착 영역 정상 — SpriteRenderer 활성화 영역만 toggle.
public static bool ShowDebugVisuals = false;
// PD 지시 2026-05-14 — 투사체 판정 범위 다시 보여줘 → true.
// GameObject·LiveHitboxSync 부착 정상 — SpriteRenderer 활성화만 toggle.
public static bool ShowDebugVisuals = true;
/// <summary>지정 world 좌표·size 박스 spawn·lifetime 후 destroy. lifetime=0 영역 영구.</summary>
public static GameObject Spawn(Vector2 pos, Vector2 size, float lifetime)

View File

@ -193,6 +193,15 @@ 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();
}
}
@ -275,6 +284,15 @@ namespace EerieVillage.Skills.Effectors
bool isWall = (otherLayer == 0);
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();
}
}