From 5355222dc77a61860a501628ed9c850cb97e74e1 Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 12 May 2026 16:40:10 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20BT102=20=EB=96=A8=EC=96=B4?= =?UTF-8?q?=EC=A7=90=20=EA=B2=80=EC=B6=9C=20=ED=85=94=EB=A0=88=ED=8F=AC?= =?UTF-8?q?=ED=8A=B8=20=ED=8F=90=EA=B8=B0=20(=EC=A0=88=EB=B2=BD=20?= =?UTF-8?q?=ED=85=94=EB=A0=88=ED=8F=AC=ED=8A=B8=C2=B7=EA=B3=B5=EC=A4=91=20?= =?UTF-8?q?spawn=20=ED=9A=8C=EA=B7=80=20=EC=A0=95=EC=A0=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 영역 1+3: - "절벽에 닿으면 텔레포트" 회귀 — 이전 정상 방향 전환 동작 - "공중 spawn Enemy가 떨어지지 않고 이전 위치로 되돌아감" 근본 (단일): - EnemyController.Update의 BT102 (line 360-376) 떨어짐 검출 텔레포트 - _isInitialized && y < _startY - fallThreshold(1.0) → 시작 위치 텔레포트 - 절벽 케이스: TriggerReverse 방향 전환 직후 fallThreshold 진입 → 텔레포트가 방향 전환을 덮어씀 - 공중 spawn 케이스: 떨어지는 즉시 fallThreshold 진입 → spawn 위치 복귀 무한 반복 fix: - BT102 떨어짐 검출 텔레포트 영역 폐기 - 자연 낙하 + TriggerReverse 절벽 방향 전환만 동작 - 공중 spawn Enemy도 자연 낙하·KinematicObject Cast로 GameObject 위 정착 영역 2 (렉) 별건 — PD 측정 영역 필요·후속 안건. 회귀 영역 X: - TriggerReverse cliffCheck Raycast 절벽 방향 전환 정합 - KinematicObject 자연 낙하·IsGrounded 정합 - Player·Enemy 충돌·발판 통과·Variant 영역 영역 X Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Mechanics/EnemyController.cs | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/Mechanics/EnemyController.cs b/Assets/Scripts/Mechanics/EnemyController.cs index f163e8f..e773264 100644 --- a/Assets/Scripts/Mechanics/EnemyController.cs +++ b/Assets/Scripts/Mechanics/EnemyController.cs @@ -357,23 +357,10 @@ namespace Platformer.Mechanics // BT89 — 자동 patrol + 즉시 벽 검출 + 1~3초 대기 영역 UpdatePatrol(); - // BT102 — 떨어짐 검출 영역: y < _startY - fallThreshold 시 = 시작 위치 텔레포트 복귀 - // PD 명시 (2026-05-08): 투명벽 폐기·떨어짐 차단 다른 방법 - // 단순·근본 방법 — 떨어진 후 검출 영역 즉시 복귀 (영구 떨어짐 X) - if (_isInitialized && transform.position.y < _startY - fallThreshold) - { - Vector3 safe = new Vector3(_startX, _startY, transform.position.z); - transform.position = safe; - if (_body != null) _body.position = safe; - if (control != null) control.velocity = Vector2.zero; - _patrolPhase = 0; - SetNextPatrolTarget(); - _phaseCooldown = PHASE_COOLDOWN; - _stuckTimer = 0f; - _lastX = _startX; - _waitTimer = Random.Range(waitMinTime, waitMaxTime); - if (control != null) control.move.x = 0f; - } + // BT12-Dev 2026-05-12 — BT102 떨어짐 검출 텔레포트 폐기 (PD 지시): + // 1. 절벽 닿을 때 텔레포트 회귀: TriggerReverse 방향 전환과 충돌해 텔레포트 우선 적용 + // 2. 공중 spawn Enemy 회귀: 떨어진 후 fallThreshold 진입 시 spawn 위치 복귀 + // 두 회귀 모두 BT102 텔레포트 원인 → 폐기. 자연 낙하 + TriggerReverse만 영역. // BT12-Dev 2026-05-11 — 밟기 공격 폐기 (PD 지시): PlayerEnemyCollision 발화 제거. // Player ↔ Enemy IgnoreCollision은 Awake 시점에 이미 적용되어 물리 통과 정합.