diff --git a/Assets/Scripts/Mechanics/AnimationController.cs b/Assets/Scripts/Mechanics/AnimationController.cs index 0efaaaf..818bcdc 100644 --- a/Assets/Scripts/Mechanics/AnimationController.cs +++ b/Assets/Scripts/Mechanics/AnimationController.cs @@ -50,6 +50,25 @@ namespace Platformer.Mechanics if (animator == null) animator = GetComponentInChildren(); // BT12-Dev 2026-05-12 — field initializer Awake 영역 이동 (Editor·Play mode 전환 시 model 미초기화 NRE 회피). try { model = Simulation.GetModel(); } catch { model = null; } + + // BT12-Dev 2026-05-12 — KinematicObject base 영역 protected virtual OnEnable/Start/Update/FixedUpdate Unity 호출 X 정정 + // (override X·derived class만 magic method 영역). Awake 영역 base 초기화 위임. + body = GetComponent(); + if (body != null) body.bodyType = RigidbodyType2D.Kinematic; + contactFilter.useTriggers = false; + contactFilter.SetLayerMask(Physics2D.GetLayerCollisionMask(gameObject.layer)); + contactFilter.useLayerMask = true; + } + + // BT12-Dev 2026-05-12 — Update·FixedUpdate Unity 호출 정합 (override 영역 derived 영역 호출 영역) + protected override void Update() + { + base.Update(); + } + + protected override void FixedUpdate() + { + base.FixedUpdate(); } protected override void ComputeVelocity()