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>