diff --git a/Engine.Physics2D/Collider2DBehaviourBase.cs b/Engine.Physics2D/Collider2DBehaviourBase.cs index e69096f..3912812 100644 --- a/Engine.Physics2D/Collider2DBehaviourBase.cs +++ b/Engine.Physics2D/Collider2DBehaviourBase.cs @@ -37,7 +37,7 @@ public abstract class Collider2DBehaviourBase : BehaviourOverride, ICollider2D protected override void OnInitialize() { - BehaviourController.TryGetBehaviour(out _rigidBody2D); + BehaviourController.TryGetBehaviourInParent(out _rigidBody2D); BehaviourController.OnBehaviourAdded += OnBehaviourAddedToController; BehaviourController.OnBehaviourRemoved += OnBehaviourRemovedFromController; @@ -45,6 +45,12 @@ public abstract class Collider2DBehaviourBase : BehaviourOverride, ICollider2D Transform.OnPositionChanged += SetNeedsRecalculation; Transform.OnRotationChanged += SetNeedsRecalculation; Transform.OnScaleChanged += SetNeedsRecalculation; + Transform.OnParentChanged += UpdateRigidBody2D; + } + + private void UpdateRigidBody2D(ITransform _1, ITransform? _2) + { + BehaviourController.TryGetBehaviourInParent(out _rigidBody2D); } private void OnBehaviourAddedToController(IBehaviourController _, IBehaviour behaviour)