Commit Graph

4 Commits

Author SHA1 Message Date
깃 관리자 40600da46a feat(BT12-Dev): 박쥐 (M002) 날으는 몬스터 — IsFlying flag (PD 지시 2026-05-15)
PD 보고:
1. "Enemy_M002_Bat 몬스터는 날으는 몬스터이기 때문에 y위치를 높이고
   싶은데 자꾸 땅으로 내려오는 현상을 수정해줘."
2. "이 몬스터가 이동하지 못하는 이유를 체크해보고 수정해줘."

원인 진단:
1. KinematicObject.FixedUpdate L107 else 분기 (velocity.y>=0)
   gravityModifier 무시·무조건 Physics2D.gravity 적용
   → 박쥐 gravityModifier=0 해도 천천히 떨어짐
2. EnemyController.UpdatePatrol cliffCheck Raycast 영역 공중 박쥐
   발 밑 ground 없음 → 즉시 TriggerReverse → 1초 cooldown 후 다시
   검출 → 무한 좌우 반전 → 이동 0
3. EnemyController.Update L361 fallThreshold 떨어짐 검출
   → 강제 텔레포트 _startY 복귀

정정:
1. KinematicObject.FixedUpdate else 분기에도 gravityModifier 곱
   gravityModifier=0 → 자연 중력 무효 (Player gravityModifier=1 영역
   영향 X·기존 동작 보존)
2. EnemyController.IsFlying bool 신규 (Inspector)
   - Awake 영역 IsFlying=true → control.gravityModifier=0·velocity=0
   - UpdatePatrol cliffCheck 영역 !IsFlying 분기 (cliff skip)
   - Update 떨어짐 텔레포트 영역 !IsFlying 분기 (skip)
3. MonsterRandomizer.flyingFlags bool[] 신규 (Inspector·동일 length)
   - Awake 영역 random idx · flyingFlags[idx]=true → EnemyController.IsFlying=true 자동 set

검증 (Play 모드):
- IsFlying=true 강제 set + y +3 이동
- [t=0] pos.y=0.50 · gravMod=0
- [t=3s] pos.y=0.50 (유지·떨어짐 X) · velocity=(-3.50, 0) (x patrol 이동·y 0)

PD 후속: Enemy.prefab Inspector MonsterRandomizer.flyingFlags 영역
박쥐 (M002) idx 영역 true 설정 필요.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 00:18:06 +09:00
깃 관리자 2ebacf636c BT5-Dev #75: 발판 시스템 영구 마무리 — 시행착오 주석 정리·dead code 제거
PD 명시 (2026-05-08): "플레이어 조작 시스템 완성. 시행착오로 불필요하게 생성된 코드·작업물 제거 + 최신 상태로만 깔끔하게"

정리 영역:

1. GameOptimizer.cs (Write 전체 재작성):
   - 헤더 주석 — BT5-Dev 발판 시스템 영구 영역 명시 + 동작 요약 5단계
   - BT34·BT46·BT66·BT67·BT48·BT63·BT68 시행착오 주석 영역 통합 정리
   - Debug.Log 영역 통합 1행 ([GameOptimizer] 출력)
   - IsSmallAirPlatform 헬퍼 영역 보존 (BT48 휴리스틱 사용 중)

2. PlayerController.cs (Edit 부분 정리):
   - dropThroughTimer·jumpAscentTimer 변수 영역 주석 정리
   - OnCollisionEnter2D BT30-Collide 진단 Debug.Log 영역 폐기 (시행착오)
   - BT69·BT70·BT71·BT72·BT73·BT74 시행착오 주석 영역 통합 정리
   - UpdateContactFilterForDropThrough 영역 메서드 docstring 추가

3. KinematicObject.cs (Edit 부분 정리):
   - BT68 X·Y 분리 영역 주석 정리

영구 채택 영역:
- R2 (BT66): AutoForeground GameObject 분리 + PD Foreground = 가림막 시각만
- BT67: AutoForeground transform 동기화 (PD Foreground·Level 영역과 동일)
- BT68: KinematicObject X·Y 분리 + GameOptimizer TileGround* 자동 분류 제외
- BT69~BT74: Drop-Through (Down + Jump) Input 패턴 + 가장자리 jitter 차단

플레이어 조작 시스템 완성:
- 발판 위 착지·점프 통과·자유 이동
- Down + Jump = Drop-Through (발판 위만)
- 전진 점프 시 앞 벽 hit + 위로 점프 보존
- 대각선 벽 통과 X (TileGround* Level 잔존)
- 발판 가장자리 jitter 차단 (3점 Raycast + 밀림 강제 Drop-Through)
2026-05-08 00:49:26 +09:00
깃 관리자 c9b39c4373 BT5-Dev #68: 점프 X·Y 분리 + TileGround* 벽 자동 분류 제외 (PD 2종 명시 채택)
PD 명시 (2026-05-08):
1. "대각선으로 점프로 벽 부분을 통과하려는 상황 → Player 점프 상태에서 밀려나는 현상" (애초에 통과 X 의무)
2. "전진하며 점프할 경우 앞이 막혀있으면 위로만 점프되어야 하는데 점프 자체가 막힘" (앞 막혀도 정상 점프 의무)

본 PM 직접 read 진단:

버그 1 (벽 통과) 원인:
- 자동 분류 영역(BT47/BT48)이 TileGround·TileGroundDark·TileGroundTop도 AutoForeground로 이동
- AutoForeground = Layer 16 + Drop-Through 패턴 (ascending mask OFF)
- = 대각선 점프 시 벽 Tile 통과 가능

버그 2 (점프 막힘) 원인:
- KinematicObject.PerformMovement line 164~165:
  velocity.x *= 0;  velocity.y = Mathf.Min(velocity.y, 0);
- = X 이동 시점 hit (앞 벽)에서도 velocity.y 영점 강제
- = 점프 시작 시 앞 벽 hit → 점프 속도 0 → 점프 자체 차단

정정:

1. KinematicObject.cs (버그 2):
   - 공중 hit 처리 X·Y 분리:
     - X 이동 시점 hit (앞 벽) → velocity.x = 0, velocity.y 보존 (점프 속도 유지)
     - Y 이동 시점 hit (천장) → velocity.x·y 모두 cap (기존)

2. GameOptimizer.cs (버그 1):
   - TileGround* (3종 — 지면·벽 의도) 자동 분류 제외 추가
   - tileAsset.name.StartsWith("TileGround") → continue
   - TileGround·TileGroundDark·TileGroundTop = Level 잔존·Layer 0·영구 충돌·통과 X

효과:
- 버그 1: 벽 통과 X (TileGround* = Layer 0 영구 충돌)
- 버그 2: 앞 막혀도 위로 점프 정합 (Y 속도 보존)
- 발판 동작 그대로 (TileFloating·MidgroundFiller·Building·cloud·hillside·midground·mountains 자동 분류)
- 나무·plant·fence·house 자체 통과 그대로

후속 의무:
- PD Refresh+Play 시각 검증 (대각선 점프 벽 통과 X + 앞 막힌 점프 작동)
- 본 PM Editor.log [BT48-MoveTiles] direct read
2026-05-08 00:20:53 +09:00
깃 관리자 9f689c1661 initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트
- Unity 2D PlatformerMicrogame 기본 템플릿 자산 전수
- Assets/Editor/GitAutoSync/GitAutoSync.cs — BT5-Dev C안 Unity Editor 자동 sync trigger
  · InitializeOnLoad → auto pull · quitting → auto push · Tools/Git Menu 수동 옵션
  · 실제 git 작업은 BT 본 레포 scripts/unity_auto_sync.sh 가 수행 (Process.Start 호출)
- .gitignore — Unity 표준 (Library/·Temp/·Logs/·UserSettings/·IDE·빌드 산출물 제외)

조직: BurningTimes / 프로젝트: EerieVillage (기묘한 고을 : 조선퇴마뎐)
근거: PD BT5-Dev C안 승인 (2026-04-23)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 00:58:44 +09:00