From 609ef5c57bd9be5b756af5271b7779c08ffccb4d Mon Sep 17 00:00:00 2001 From: swrring Date: Thu, 7 May 2026 23:30:56 +0900 Subject: [PATCH] =?UTF-8?q?BT5-Dev=20#57:=20Drop-Through=20=EC=A7=84?= =?UTF-8?q?=EB=8B=A8=20Debug.Log=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 보고 (2026-05-07): "발판을 다시 통과해서 이동하거나 점프할 수 없게 되었어" 본 PM 알고리즘 영역 진단 결과 (모두 정합): - BT55 자동 분류 [BT55-MoveTiles] moved=1389 (BT47 정합) - Player Layer 13 / Foreground Layer 16 - Layer Matrix 13 ↔ 16 충돌 ON - PlayerController.UpdateContactFilterForDropThrough 표준 패턴 = 알고리즘 영역 정합 + PD 보고 점프 X = 본 PM 미식별 영역. BT57 진단 Debug.Log 추가: - 출력 시점: 점프 시점 (jump || PrepareToJump || Jumping || InFlight velY>0.5) - 출력 영역: jumpState·velocity.y·standingOnPlatform·mask16(Layer 16 mask)·transform.y·bounds.min.y - log spam 방지 (점프 시점만) PD Refresh+Play 후 본 PM Editor.log [BT57-DropThrough] direct read 후 진단: - jumpState 영역 정상 전환 검증 (Grounded → PrepareToJump → Jumping) - mask16 = false (ascending 시 mask OFF) 확증 - standingOnPlatform 영역 정상 검출 검증 알고리즘 정합 + 진단 결과로 후속 정정 영역 결정. --- Assets/Scripts/Mechanics/PlayerController.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Assets/Scripts/Mechanics/PlayerController.cs b/Assets/Scripts/Mechanics/PlayerController.cs index cbfccdc..311cef5 100644 --- a/Assets/Scripts/Mechanics/PlayerController.cs +++ b/Assets/Scripts/Mechanics/PlayerController.cs @@ -221,6 +221,13 @@ namespace Platformer.Mechanics int mask = standingOnPlatform ? baseMask : (baseMask & ~(1 << JUMP_THROUGH_LAYER)); contactFilter.SetLayerMask(mask); contactFilter.useLayerMask = true; + + // BT57 — 진단 (점프 시점·발판 영역만 출력. PD Refresh+Play 후 본 PM Editor.log direct read 의무) + if (jump || jumpState == JumpState.PrepareToJump || jumpState == JumpState.Jumping + || (jumpState == JumpState.InFlight && Mathf.Abs(velocity.y) > 0.5f)) + { + Debug.Log($"[BT57-DropThrough] state={jumpState} velY={velocity.y:F2} stand={standingOnPlatform} mask16={(mask & (1<