public static void UnregisterActionWithDispatcher <TMessageType> ( GameObject inDispatcherObject, UnityMessageEventHandle <TMessageType> inHandle ) where TMessageType : UnityMessagePayload { UnregisterActionWithDispatcher(inDispatcherObject.GetComponent <IUnityMessageEventInterface>(), inHandle); }
public static void UnregisterActionWithDispatcher <TMessageType> ( IUnityMessageEventInterface inDispatcherInterface, UnityMessageEventHandle <TMessageType> inHandle ) where TMessageType : UnityMessagePayload { if (inDispatcherInterface == null) { throw new UnityMessageHandleException("Invalid dispatcher interface passed in for unregistration!"); } inDispatcherInterface.GetUnityMessageEventDispatcher().UnregisterForMessageEvent(inHandle); }
public UnityMessageEventHandle <TMessageType> RegisterForMessageEvent <TMessageType>(UnityAction <TMessageType> inAction) where TMessageType : UnityMessagePayload { var messageType = typeof(TMessageType); if (!_registeredEvents.ContainsKey(messageType)) { _registeredEvents.Add(typeof(TMessageType), new UnityMessageEvent <TMessageType>()); } var messageEvent = (UnityMessageEvent <TMessageType>)_registeredEvents[messageType]; var messageHandle = new UnityMessageEventHandle <TMessageType>(); messageHandle.RegisterHandle(messageEvent, inAction); return(messageHandle); }
public void UnregisterForMessageEvent <TMessageType>(UnityMessageEventHandle <TMessageType> inHandle) where TMessageType : UnityMessagePayload { if (inHandle == null) { throw new UnityMessageHandleException("Null handle on unregistration!"); } if (!inHandle.IsRegistered()) { throw new UnityMessageHandleException("handle was not registered!"); } var messageType = typeof(TMessageType); if (!_registeredEvents.ContainsKey(messageType)) { throw new UnityMessageHandleException("Handle was registered to other dispatcher!"); } var messageEvent = (UnityMessageEvent <TMessageType>)_registeredEvents[typeof(TMessageType)]; inHandle.UnregisterHandle(messageEvent); }