Commit Graph

7 Commits

Author SHA1 Message Date
깃 관리자 151cd1794b BT5-Dev #28: Tilemap Layer 8 변환 + STOMP_DELTA 시각 정합 (-0.4~-0.05)
PD 보고:
1. 발판 통과 X — Tilemap Layer 0 그대로 → 일반 충돌 → 점프 통과 X
2. 밟기 위치 너무 높음 — STOMP_DELTA_MAX +0.1 → 시각 발이 Enemy 머리 위 0.1 떠 있음

데이터 진단:
- [BT27-JumpThrough] applied=1 (Alien only) — Tilemap 제외로 발판 영역 미적용
- [PEC] stomped=True delta=-0.11~-0.28 — Collider 영역만 정합 / 시각 영역 차이 0.2

정정:
- GameOptimizer: TilemapCollider2D 제외 영역 폐기 → 모든 일반 Collider Layer 8 변환
- PlayerEnemyCollision: STOMP_DELTA -0.3~+0.1 → -0.4~-0.05 (Player Collider Offset +0.10 + Enemy sprite 위 여백 0.1 보정)

Drop-Through 패턴 동작:
- 모든 지면·발판 Layer 8 = 기본 통과 (Player 13 ↔ Layer 8 IgnoreLayerCollision)
- Player 하강 + 발 Raycast hit → IgnoreCollision(false) 임시 활성 = 착지
- 점프(상승) → IgnoreCollision(true) 복구 = 통과
2026-05-07 17:11:20 +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
깃 관리자 d15a46b5cc BT5-Dev #25: Bounds 기반 footHeadDelta + Tilemap OneWay 폐기 (PD 의도 정합)
PD 보고:
1. 점프 밟기 위치 너무 높음 — dyAtCollision = transform 차 (center vs center) 영역 잘못
2. 발판 통과 X — Tilemap OneWay 영역 적용 = 모든 Tile 영역 OneWay = 일반 지면 영역 깨짐

정정:
- EnemyController.Update: dyAtCollision = Player.Bounds.min.y - Enemy.VisualBounds.max.y (footHeadDelta)
- PlayerEnemyCollision: stomped = (-0.2 < delta < 0.3) — Player 발 ≈ Enemy 머리 영역
- GameOptimizer: TilemapCollider2D 영역 영역 OneWay 영역 영역 폐기 → 별개 BoxCollider2D 영역 OneWay (Alien 등 점프 가능 발판 영역 영역만)
2026-05-07 16:42:31 +09:00
깃 관리자 806e5f722e BT5-Dev #22 진정한 근본: Enemy.prefab m_Layer 13→14 + m_TagString Player→Untagged + IgnoreLayerCollision(13,14)
본 PM 자인 (C5·C39·C44):
- BT5-Dev #1~#21 동안 Enemy.prefab m_Layer/m_TagString 영역 검증 X 누적
- Enemy의 m_Layer=13 (Player와 동일) + m_TagString=Player (Player tag 중복) = 진정한 근본
  → FindGameObjectWithTag("Player")가 Enemy 발견 + Layer 동일로 IgnoreCollision도 효과 X
- 본 PM이 추측·Bounds·Distance·IgnoreCollision·OneWay 영역 모두 = 도달 영역 외 정정

정정:
- Enemy.prefab m_Layer 13→14
- Enemy.prefab m_TagString Player→Untagged
- GameOptimizer Physics2D.IgnoreLayerCollision(13, 14, true) BeforeSceneLoad

영구 효과:
- FindGameObjectWithTag("Player") = Player.prefab만 발견 정합
- Player Layer 13 ↔ Enemy Layer 14 충돌 OFF = 통과 정합
- IgnoreCollision instance 영역 의존 X = 안전
2026-05-07 16:09:54 +09:00
깃 관리자 874f58a66e BT5-Dev #21: vy 조건 폐기·Awake fallback IgnoreCollision·OneWay 디버그 강화 2026-05-07 16:00:40 +09:00
깃 관리자 db6bb2051d BT5-Dev #19: 지형 통과(모든 Collider OneWay)·밟기 stompMinDy 0.1·낙사 hit 모션 X 2026-05-07 15:50:17 +09:00
깃 관리자 eed8ee5902 BT5-Dev #16: PM 변경 영역 일괄 commit (PD Editor GitAutoSync 영역 도달)
본 PM이 외부 영역에서 변경한 BT5-Dev 모든 영역을 EerieVillage git에 반영:
- EnemyController.cs (Distance 기반 감지·VisualBounds·IgnoreCollision·Bounds)
- PlayerEnemyCollision.cs (dyAtCollision·stomped 판정)
- PlayerController.cs (LastGroundedPosition·OnHealthDeath/Resurrect·자동 컴포넌트)
- DeathZone.cs (Coroutine·viewport 외 대기)
- Health.cs (invulnerableDuration 0.5·resurrectInvulnerableDuration 2.0·GrantInvulnerability·이벤트 3종)
- GameOptimizer.cs (신설·targetFrameRate·queriesHitTriggers·SetupOneWayPlatforms)
- PlayerInvulnerabilityFlash.cs (신설)
- ResurrectPromptUI.cs (신설)
- Player.prefab (Collider Size·Offset·m_FlipX 1)
- Enemy.prefab (m_IsTrigger 0)
- Hero1 sprite meta (combatidle 4종 rename)
- _archive/ 폴더 + 9 sprite 이동
- bak_2026* 28 파일 전수 삭제 (D 옵션)

원인 자인:
- 본 PM이 Unity 외부 영역 변경했지만 EerieVillage git commit X 영역 누적 = PD Editor에 도달 X = 옛 코드 동작
- C5·C44 위배

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:29:34 +09:00