From 5f360ca82fbe326b76b5036c1ee9bb17e2008c56 Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 12 May 2026 18:34:07 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20IsGrounded=20=EA=B0=80?= =?UTF-8?q?=EB=93=9C=20=ED=8F=90=EA=B8=B0=20(6c981ed=20=EC=A0=95=ED=95=A9?= =?UTF-8?q?=C2=B7Enemy=20=EC=98=81=EA=B5=AC=20=EC=A0=95=EC=A7=80=20?= =?UTF-8?q?=EC=A0=95=EC=A0=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- Assets/Scripts/Mechanics/EnemyController.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index 78f4038..b8400c0 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -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; }