diff --git a/AGXUnity/WireRoute.cs b/AGXUnity/WireRoute.cs index 5fe24737..ff295c2b 100644 --- a/AGXUnity/WireRoute.cs +++ b/AGXUnity/WireRoute.cs @@ -18,7 +18,7 @@ namespace AGXUnity /// Wire.RouteNode myNode = route.FirstOrDefault( node => node.Frame == thisFrame ); /// [Serializable] - public class WireRoute : Route + public class WireRoute : Route, ISerializationCallbackReceiver { /// /// Checks validity of current route. @@ -177,5 +177,16 @@ private void OnRemovedFromList( WireRouteNode node, int index ) { node.Wire = null; } + + public void OnBeforeSerialize() { } + + public void OnAfterDeserialize() + { + // Remove callback if it exists to avoid any possible duplicates + OnNodeAdded -= this.OnAddedToList; + OnNodeRemoved -= this.OnRemovedFromList; + OnNodeAdded += this.OnAddedToList; + OnNodeRemoved += this.OnRemovedFromList; + } } }