From da6e694d5ce1e0f0243b6760ff4a6ec17230c346 Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 12 May 2026 16:55:06 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20Player=20=ED=94=BC=EA=B2=A9=20?= =?UTF-8?q?=E2=80=94=20Bounds.Intersects=20=E2=86=92=202D=20AABB=20(Z=20?= =?UTF-8?q?=EB=AC=B4=EC=8B=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD: "지시 수정 정합 X·변화 X" 근본 (MCP Play 직접 실측·자성 #13): - Enemy 강제 Player 위치 이동 후에도 Intersects=False - Bounds 분석: - Enemy z=0 (Variant prefab default) - Player z=1 (Scene 영역) - Bounds.Intersects는 3D 비교 → Z 1 unit 차이로 항상 false fix: - Bounds.Intersects 폐기·2D AABB 직접 검사 - Mathf.Abs(deltaX) < (eExtents.x + pExtents.x) && deltaY 동일 - Z 좌표 무시·2D 게임 정합 회귀 영역 X: - IsGrounded 조건·cliffCheck·KinematicObject·VisualBounds 영역 영역 X - 영역 1 (cliffCheck 매 frame) 정합 유지 Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Mechanics/EnemyController.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index 631ce6c..6435215 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -384,7 +384,12 @@ namespace Platformer.Mechanics } if (_cachedPlayer != null && _cachedPlayer.health != null && _cachedPlayer.health.IsAlive) { - if (_cachedPlayer.IsGrounded && VisualBounds.Intersects(_cachedPlayer.Bounds)) + // BT12-Dev 2026-05-12 — 2D AABB 검사 (Z 무시: Enemy z=0·Player z=1·Bounds.Intersects 3D 비교 항상 False). + var eb = VisualBounds; + var pb = _cachedPlayer.Bounds; + bool overlap2D = Mathf.Abs(eb.center.x - pb.center.x) < (eb.extents.x + pb.extents.x) + && Mathf.Abs(eb.center.y - pb.center.y) < (eb.extents.y + pb.extents.y); + if (_cachedPlayer.IsGrounded && overlap2D) { if (!_cachedPlayer.health.IsInvulnerable) {