// Gets the registered callbacks, unregisters them, and removes them from the related object. void UnRegister(TriggerSender sender) { MapTriggerCallbacks cbs = registeredCallbacks[sender]; registeredCallbacks.Remove(sender); sender.GetComponent <EventDispatcher>().RemoveOnMovementFinishedListener(cbs.OnMapTriggerMoved); }
// Register a new sender, and add their callbacks void Register(TriggerSender sender) { registeredCallbacks[sender] = new MapTriggerCallbacks((direction) => { CallOnMapTriggerMoved(sender.GetComponent <Positionable>()); }); sender.GetComponent <EventDispatcher>().AddOnMovementFinishedListener(registeredCallbacks[sender].OnMapTriggerMoved); }