Commit Graph

4 Commits

Author SHA1 Message Date
깃 관리자 0e56408e17 BT5-Dev #33: else if(falling && hit==null) 폐기 + footRayDistance 0.5→1.0
[BT32-StartHit] dist=0.54 영역 = Player 시작 위치 0.54m 위. footRayDistance 0.5 영역 → 첫 Update raycast hit X(0.54>0.5) → else if 영역 → IgnoreCollision(true) 복구 → 통과 → 떨어짐

본 PM 자인:
- Start raycast 정상 활성 → 직후 Update raycast 거리 부족으로 hit miss
- else if 영역 = 발판 떠남 시 활성 해제 → Player 거리 잠시 벗어나도 활성 해제 = 떨어짐 직접 원인

정정:
- footRayDistance 0.5 → 1.0 (Player 시작 위치 영역 충분 커버)
- Update else if(falling && hit.collider==null && _activePlatform!=null) 영역 폐기 (활성 해제 = rising 시점만)

동작:
- Start 시 Level 영역 충돌 활성
- 떨어짐 영역 raycast 거리 일시 벗어나도 활성 유지 (떨어짐 차단)
- 점프(rising) 시 IgnoreCollision(true) 복구 = 통과
- 하강(falling) + 새 발판 hit → 새 발판 활성
2026-05-07 17:47:00 +09:00
깃 관리자 5e796cc5e2 BT5-Dev #32: PlatformDropThrough Awake/Start 진단 로그 + raycast 무한대
[BT31-StartHit] 출력 0건 진단:
1. PlatformDropThrough 부착 X 또는 Awake/Start 호출 X
2. Start raycast 거리 0.5m 이내 발판 X (Player 시작 위치 발판 멀리)

진단 영역:
- Awake: [BT32-DropThrough] self/ko/mask 출력
- Start: [BT32-DropThrough] Start called + raycast 결과 출력
  - hit Layer 8: [BT32-StartHit] dist·platform name·layer
  - miss: [BT32-StartHit] no Layer 8 + 모든 Layer raycast로 anyHit 출력
- raycast 거리 무한대 (Mathf.Infinity)
2026-05-07 17:29:30 +09:00
깃 관리자 0eea12d945 BT5-Dev #31: Level Tilemap Layer 8 변환 + Raycast 동적 거리·Start 즉시 활성 (충돌 진단 결과)
[BT30-Collide] name='Level' layer=0 — Player 충돌 GameObject = Level Tilemap 확정.
PD 의도 = Level Tilemap 영역 전체 Drop-Through (점프 시 통과 + 하강 시 Raycast 착지)

본 PM 자인 (BT28 떨어짐 원인):
- Raycast 거리 0.1m 너무 짧음 → velocity 빠른 하강 시 miss
- 시작 시 즉시 활성 X → Player 시작 위치 발판 영역 통과 = 떨어짐

정정:
- GameOptimizer: TilemapCollider2D 제외 영역 폐기 → Level Tilemap도 Layer 8 변환
- PlatformDropThrough.Start: 시작 시 즉시 1회 raycast → Player 시작 위치 발판 영역 충돌 활성 (떨어짐 차단)
- PlatformDropThrough.Update: footRayDistance 0.1 → 0.5 + velocity 기반 동적 거리 (Mathf.Max + |vy|*deltaTime + 0.1)

동작:
- 시작 시 [BT31-StartHit] 출력 + Player 발판 위 정상 정착
- 점프 시 IgnoreCollision(true) 복구 = 통과
- 하강 시 raycast hit → IgnoreCollision(false) = 착지
2026-05-07 17:26:45 +09:00
깃 관리자 98bfbd74a2 BT5-Dev #27: Layer 8(JumpThrough) + Raycast 동적 IgnoreCollision (PD 제안)
PD 제안 채택 — PlatformEffector2D 폐기 + 표준 Drop-Through Platform 패턴:
- Player(13) ↔ JumpThrough(8) 기본 통과 (Physics2D.IgnoreLayerCollision)
- Player 발 Raycast (Layer 8 mask, 0.1m) + 하강 시 → IgnoreCollision(false) 임시 활성 = 착지
- 상승 시 → IgnoreCollision(true) 복구 = 통과
- 발판 떠남 → IgnoreCollision(true) 복구

변경:
- GameOptimizer: SetupOneWayPlatforms → SetupJumpThroughPlatforms (Layer 8 변환·PlatformEffector2D 잔존 제거)
- PlatformDropThrough.cs (신설): 발 Raycast + 동적 IgnoreCollision
- PlayerController.Awake: PlatformDropThrough 자동 부착
2026-05-07 17:04:25 +09:00