public void Unsubscribe(OnTimeStateChanged eventHandler, object o) { Debug.Log("Unsubscribed " + o); List <OnTimeStateChanged> l; if (eventHandlers.TryGetValue(o, out l)) { l.Remove(eventHandler); } }
/// <summary> /// Subscribes an event handler when the time flow state changes on the given object, o. /// </summary> /// <param name="eventHandler"></param> /// <param name="o"></param> public void Subscribe(OnTimeStateChanged eventHandler, object o) { if (!registeredObjects.ContainsKey(o)) { return; } if (!eventHandlers.ContainsKey(o)) { var newList = new List <OnTimeStateChanged>(); newList.Add(eventHandler); eventHandlers.Add(o, newList); //Debug.Log("Added " + o + " to event handlers. Hash: " + o.GetHashCode()); } else { List <OnTimeStateChanged> list; eventHandlers.TryGetValue(o, out list); list.Add(eventHandler); //Debug.Log("Added " + eventHandler + " to event handlers for " + o + ". Hash: " + o.GetHashCode()); } }