From d9660c08b1ad9463aa9698f3ee6a06293becb8d3 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Tue, 6 Feb 2024 12:26:14 +0300 Subject: [PATCH] feat: Collider RigidBody Reference Update on Parent Change --- Engine.Physics2D/Collider2DBehaviourBase.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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)