From fc351795e7373961c10b0082aa5065b357b55b9e Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 12 May 2026 16:48:08 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20UpdatePatrol=20IsGrounded=3DTr?= =?UTF-8?q?ue=20=EC=98=81=EC=97=AD=EB=A7=8C=20=EB=8F=99=EC=9E=91=20(?= =?UTF-8?q?=EA=B3=B5=EC=A4=91=20=EB=82=99=ED=95=98=20=EC=8B=9C=20skip)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD: "(나)안 — 어느 위치에 있든 절벽 회피·단 순찰 패턴 아닐 때 (공중 낙하 등) 상관 없음" 근본 정리: - cliffCheck Raycast는 기존부터 정합 (Layer 0 발판·바닥 모두 hit) - 공중 낙하 시 cliffCheck 적용되면 즉시 TriggerReverse → 자연 낙하 방해 fix: - UpdatePatrol 시작 영역에 IsGrounded 가드 - control.IsGrounded=False (공중·피격 밀림·spawn 직후 낙하 등) → patrol·cliffCheck skip move.x=0·stuckTimer=0·return - KinematicObject 자연 낙하·바닥/발판 정착 → IsGrounded=True → patrol 재개·cliffCheck 정합 회귀 영역 X: - 영역 1 (애니메이션 Clip path)·영역 2 (Collider bounds) 정합 유지 - TriggerReverse·MeasureSafeWalkDistance·KinematicObject 영역 영역 X Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Mechanics/EnemyController.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index 71bd3da..15efb9a 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -277,6 +277,15 @@ 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) + { + if (control != null) control.move.x = 0f; + _stuckTimer = 0f; + return; + } + // BT107 — BT106 y 강제 고정 영역 폐기 (PD 보고: 공중 부유 영역 원인) // 대기 영역 — control.move.x = 0 + Timer 감소