Go to file
깃 관리자 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
Assets fix(BT12-Dev): KinematicObject base magic method override·body 초기화 (Enemy 영구 정지 근본) 2026-05-12 17:57:01 +09:00
Packages fix(BT12-Dev): Tutorial Framework 패키지 제거 (SceneObjectGuid 중복 GUID 근본 해결) 2026-05-12 15:58:57 +09:00
ProjectSettings auto: 2026-05-12 11:03 · scene: Lobby · 42 files 2026-05-12 11:03:10 +09:00
.gitignore initial: Unity 6000.3.13f1 LTS 2D PlatformerMicrogame 템플릿 + GitAutoSync Editor 스크립트 2026-04-23 00:58:44 +09:00
EerieVillage.slnx BT7-Plan Phase 1: VS 순수형 자동 발동 + 하트 분할 시스템 2026-04-24 16:22:13 +09:00