PD 지시: 개발팀과 논의 후 보고 개발팀장 Opus 직접 진단: 근본 원인: - KinematicObject.Start()에서 contactFilter.SetLayerMask() 한 번 캐싱 - 이후 Physics2D.IgnoreLayerCollision으로 Layer Matrix 토글해도 contactFilter는 갱신 X - body.Cast() raycast 영역 contactFilter 활용 = Layer Matrix 영역 무관 - 본 PM 19회 시도 모두 raycast 영역 미적용 = 발판 충돌 그대로 감지 해결 (Unity Kinematic2D 표준 Drop-Through 패턴): - PlayerController.UpdateContactFilterForDropThrough — velocity.y > 0 (상승) 영역 Layer 16 mask 비활성 - contactFilter.SetLayerMask() 매 프레임 동적 갱신 = raycast가 발판 영역 무시 - GameOptimizer Physics2D.IgnoreLayerCollision(13, 16, false) 라인 폐기 (Layer Matrix 항시 ON 유지) - BT39 Coroutine 영역 폐기 본 PM 자인: - KinematicObject body.Cast() vs Rigidbody2D OnCollisionEnter 별도 경로 미인지 - ContactFilter2D 캐싱 동작 미인지 - 19회 시도 모두 Rigidbody collision callback 영역 (raycast 영역 무관) 동작: - 점프 상승 (velocity.y > 0.01) → contactFilter mask Layer 16 비트 제거 → raycast 발판 영역 무시 → 통과 - 하강·정지 → mask 복원 → raycast 발판 영역 감지 → 착지 |
||
|---|---|---|
| .. | ||
| Core | ||
| Gameplay | ||
| Mechanics | ||
| Model | ||
| MyUI | ||
| UI | ||
| View | ||
| Core.meta | ||
| Gameplay.meta | ||
| Mechanics.meta | ||
| Model.meta | ||
| MyUI.meta | ||
| UI.meta | ||
| View.meta | ||