diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index bb6d6a0..7baec92 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -133,14 +133,16 @@ namespace Platformer.Mechanics _lastX = transform.position.x; } + // BT103 — 정확 측정 (PD 명시 2026-05-08): Start 시점 1회 측정·간격 0.1m·Capsule 발 영역 정확 float MeasureSafeWalkDistance(float dir) { - float groundY = transform.position.y - 0.34f; // 발 영역 위 0.05m (Capsule offset 영역 기반 추정) - for (float d = 0.5f; d <= patrolMaxRange; d += 0.5f) + if (_collider == null) return patrolMaxRange; + float groundY = _collider.bounds.min.y + 0.05f; // Capsule 발 영역 위 0.05m + for (float d = 0.1f; d <= patrolMaxRange; d += 0.1f) { Vector2 origin = new Vector2(_startX + dir * d, groundY); RaycastHit2D hit = Physics2D.Raycast(origin, Vector2.down, cliffCheckDepth, groundLayerMask); - if (hit.collider == null) return Mathf.Max(0f, d - 1.5f); + if (hit.collider == null) return Mathf.Max(0f, d - 0.5f); // 안전 margin 0.5m } return patrolMaxRange; }