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:
parent
708ba087ed
commit
4c00378d78
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue