fix(BT12-Dev): IsGrounded 가드 폐기 (6c981ed 정합·Enemy 영구 정지 정정)

PD: "6c981ed 정상 이동·뭐가 달라진건지 확인"

근본 (6c981ed vs HEAD diff 분석):
- fc35179 (2026-05-12)에서 UpdatePatrol 영역에 IsGrounded 가드 추가
  if (control == null || !control.IsGrounded) { move.x=0; return; }
- 의도: 공중 낙하 시 patrol skip·자연 낙하 우선
- 실제: KinematicObject.FixedUpdate가 매 frame 호출되어 IsGrounded 갱신해야 동작
- Enemy spawn 직후 IsGrounded=False (default) → patrol skip → move=0
- FixedUpdate가 호출되어도 velocity 영역 패턴 영역
- 매 frame IsGrounded=False 가능성 영역 → 영구 정지 루프

6c981ed (정상 동작 시점):
- UpdatePatrol에 IsGrounded 가드 없음
- patrol 영역 항상 진행 → move=Clamp(dx, -1, 1) → ComputeVelocity →
  targetVelocity → FixedUpdate → velocity·position 정상

fix:
- IsGrounded 가드 제거·control NULL 가드만 유지
- patrol 영역 항상 동작·KinematicObject 자연 낙하·gravity 영역 무관
- 공중 spawn Enemy도 patrol 영역 시도 (FixedUpdate gravity·Cast로 자연 정착)

회귀 영역 X:
- KinematicObject Awake 초기화·Update/FixedUpdate override·sr/anim/body 영역 정합
- cliffCheck·waitTimer·stuckTimer·TriggerReverse 영역 영역 X

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-12 18:34:07 +09:00
parent 35923be06d
commit 5f360ca82f
1 changed files with 4 additions and 4 deletions

View File

@ -273,11 +273,11 @@ namespace Platformer.Mechanics
return;
}
// BT12-Dev 2026-05-12 — IsGrounded=False 영역 patrol·cliffCheck skip (PD: 공중 낙하 시 자연 낙하 우선)
// 피격 밀림·공중 spawn 영역 KinematicObject 자연 낙하 → 바닥/발판 정착 → IsGrounded=True → patrol 재개.
if (control == null || !control.IsGrounded)
// BT12-Dev 2026-05-12 — IsGrounded 가드 폐기 (PD: 6c981ed 정합·영구 정지 정정)
// 이전 가드는 IsGrounded=False 시 patrol skip·move=0·return → KinematicObject FixedUpdate
// 첫 호출 전까지 IsGrounded=False (default) → 매 frame skip → 영구 정지 루프
if (control == null)
{
if (control != null) control.move.x = 0f;
_stuckTimer = 0f;
return;
}