BT5-Dev #105: 제자리 사망·안전 margin 2.0m (PD 2건)

PD 보고 (2026-05-08):
1. 밟기 처치 Enemy 맵에서 떨어짐 → 제자리 사망 모션
2. 떨어짐 잔존 → 낭떠러지 닿기 전 방향 전환

정정 (BT105):
1. EnemyDeath.cs:
   - body.simulated = false 추가 (Rigidbody2D 물리 미참여 → gravity X)
   - = 제자리 사망 (death 애니메이션 + 1초 Destroy)
2. EnemyController.cs MeasureSafeWalkDistance:
   - 안전 margin 0.5m → 2.0m
   - patrol _maxRightRange/_maxLeftRange = 측정 거리 - 2.0m
   - = patrol 영역이 절벽에서 항상 2m 이상 영역 → 절벽 도달 X

효과:
- 밟기 사망 = 제자리 사망 (떨어짐 X·시각 자연 모션)
- patrol 영역 = 절벽에서 2m 안전 영역까지 → 절벽 영역 도달 X
This commit is contained in:
깃 관리자 2026-05-08 15:27:12 +09:00
parent 517e9c51fc
commit 70d5bc42d2
2 changed files with 8 additions and 4 deletions

View File

@ -19,7 +19,11 @@ namespace Platformer.Gameplay
// 충돌·이동·patrol 영역 비활성
if (enemy._collider != null) enemy._collider.enabled = false;
if (enemy.control != null) enemy.control.enabled = false;
enemy.enabled = false; // BT104: EnemyController patrol 영역 정지
enemy.enabled = false; // EnemyController patrol 영역 정지
// BT105 — 제자리 사망 (PD 명시 2026-05-08): Rigidbody2D simulated = false → gravity X·물리 미참여
var body = enemy.GetComponent<Rigidbody2D>();
if (body != null) body.simulated = false;
// death 애니메이션 트리거 (Enemy.controller 영역의 'death' parameter)
var animator = enemy.GetComponent<Animator>();

View File

@ -166,16 +166,16 @@ namespace Platformer.Mechanics
_lastX = transform.position.x;
}
// BT103 — 정확 측정 (PD 명시 2026-05-08): Start 시점 1회 측정·간격 0.1m·Capsule 발 영역 정확
// BT105 — 정확 측정·안전 margin 2.0m (PD 보고 떨어짐 잔존: 보수적 영역으로 절벽 도달 X 보장)
float MeasureSafeWalkDistance(float dir)
{
if (_collider == null) return patrolMaxRange;
float groundY = _collider.bounds.min.y + 0.05f; // Capsule 발 영역 위 0.05m
float groundY = _collider.bounds.min.y + 0.05f;
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 - 0.5f); // 안전 margin 0.5m
if (hit.collider == null) return Mathf.Max(0f, d - 2.0f); // BT105: 0.5→2.0m
}
return patrolMaxRange;
}