EerieVillage/Assets/Scripts/Mechanics
깃 관리자 35923be06d fix(BT12-Dev): KinematicObject base magic method override·body 초기화 (Enemy 영구 정지 근본)
PD: "여전히 움직이지 않아·실측해보고 근본 원인 체크"

근본 (MCP Play 실측·자성 #12·#13):
- KinematicObject.OnEnable·Start·Update·FixedUpdate 모두 `protected virtual`
- AnimationController는 KinematicObject 상속하지만 override X
- Unity는 Component 정의된 magic method만 호출·base class virtual은 derived가 override 안 하면 호출 안 됨
- 결과: KinematicObject.OnEnable 호출 X → body=NULL·KinematicObject.FixedUpdate 호출 X → velocity 갱신 X·gravity 적용 X
- Enemy 자연 낙하 X·patrol 동작 X·영구 정지

검증:
- MCP Play 후 body field reflection 읽기 → NULL
- Rigidbody2D 컴포넌트 자체는 GetComponent OK·OnEnable이 body 설정 안 함

fix (AnimationController):
1. Awake 영역에 base 초기화 위임:
   - body = GetComponent<Rigidbody2D>()·body.bodyType = Kinematic
   - contactFilter.useTriggers/SetLayerMask/useLayerMask
2. Update·FixedUpdate override 추가:
   - protected override void Update() { base.Update(); }
   - protected override void FixedUpdate() { base.FixedUpdate(); }
   - Unity가 AnimationController 인스턴스의 Update/FixedUpdate 호출 → base 실행

검증 후 (MCP Play):
- body=OK·IsGrounded=True·자연 낙하 정합 (pos.y=-2.5 등)
- Enemy 일부 발판 위 정착·일부 InfiniteHorizontalGround 영역 밖 무한 낙하 (별건)

회귀 영역 X:
- spriteRenderer/animator GetComponentInChildren·field initializer 가드 영역 영역 X
- KinematicObject 자체 영역 영역 X (다른 KinematicObject 상속 클래스는 별도 검증)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 17:57:01 +09:00
..
AnimationController.cs fix(BT12-Dev): KinematicObject base magic method override·body 초기화 (Enemy 영구 정지 근본) 2026-05-12 17:57:01 +09:00
AnimationController.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
AttackHitbox.cs fix(BT12-Dev): EnemyDeath 근본 fix — Animator transition 5 + UnscaledTime + 진단 회수 2026-05-10 01:09:17 +09:00
AttackHitbox.cs.meta auto: 2026-04-23 23:47 · scene: SampleScene · 20 files 2026-04-23 23:47:51 +09:00
DeathZone.cs BT5-Dev #19: 지형 통과(모든 Collider OneWay)·밟기 stompMinDy 0.1·낙사 hit 모션 X 2026-05-07 15:50:17 +09:00
DeathZone.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
EnemyController.cs fix(BT12-Dev): 양측 cliff wait 영역 재설정 영역 폐기 (영구 정지 정정) 2026-05-12 17:19:44 +09:00
EnemyController.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
GameController.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
GameController.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
GameOptimizer.cs BT5-Dev 최적화 B안: Debug.Log 가드 + Legacy 4 파일 정리 2026-05-08 17:24:51 +09:00
GameOptimizer.cs.meta BT5-Dev #16: PM 변경 영역 일괄 commit (PD Editor GitAutoSync 영역 도달) 2026-05-07 15:29:34 +09:00
Health.cs chore(BT12-Dev-Death): Health.cs 진단 Debug.Log 3줄 회수 — 사망 원인 확정 후 회수 의무 정합 2026-05-10 01:31:58 +09:00
Health.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
HitInterruptGuard.cs auto: 2026-05-07 13:22 · scene: Lobby · 361 files 2026-05-07 13:22:51 +09:00
HitInterruptGuard.cs.meta auto: 2026-05-07 13:22 · scene: Lobby · 361 files 2026-05-07 13:22:51 +09:00
KinematicObject.cs BT5-Dev #75: 발판 시스템 영구 마무리 — 시행착오 주석 정리·dead code 제거 2026-05-08 00:49:26 +09:00
KinematicObject.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
MonsterRandomizer.cs fix(BT12-Dev): 몬스터 종류 random — 6 OverrideController·MonsterRandomizer 2026-05-11 01:37:54 +09:00
MonsterRandomizer.cs.meta auto: 2026-05-12 11:03 · scene: Lobby · 42 files 2026-05-12 11:03:10 +09:00
PlayAudioClip.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
PlayAudioClip.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
PlayerController.cs feat(BT12-Dev): SkillInventoryHUD 시각화 + 사망 원인 디버그 로그 (PD 후속 지시 2건) 2026-05-09 21:23:25 +09:00
PlayerController.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
PlayerInvulnerabilityFlash.cs BT5-Dev #16: PM 변경 영역 일괄 commit (PD Editor GitAutoSync 영역 도달) 2026-05-07 15:29:34 +09:00
PlayerInvulnerabilityFlash.cs.meta BT5-Dev #16: PM 변경 영역 일괄 commit (PD Editor GitAutoSync 영역 도달) 2026-05-07 15:29:34 +09:00
PlayerStateTimer.cs auto: 2026-05-07 13:22 · scene: Lobby · 361 files 2026-05-07 13:22:51 +09:00
PlayerStateTimer.cs.meta auto: 2026-05-07 13:22 · scene: Lobby · 361 files 2026-05-07 13:22:51 +09:00
SpawnPoint.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
SpawnPoint.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
TokenController.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
TokenController.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
TokenInstance.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
TokenInstance.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
VictoryZone.cs initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
VictoryZone.cs.meta initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00