public void UnregisterManagedCallback(Guid messageId, UnityAction <MessageEventArgs> callback) { MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (messageTypeSubscribers != null) { messageTypeSubscribers.subscriberCount--; messageTypeSubscribers.messageCallback.RemoveListener(callback); if (messageTypeSubscribers.subscriberCount <= 0) { this.messageTypeSubscribers.Remove(messageTypeSubscribers); } } }
public UnityEvent <MessageEventArgs> AddAndCreate(Guid messageId) { MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (messageTypeSubscribers == null) { MessageTypeSubscribers messageTypeSubscribers2 = new MessageTypeSubscribers(); messageTypeSubscribers2.MessageTypeId = messageId; messageTypeSubscribers2.messageCallback = new MessageEvent(); messageTypeSubscribers = messageTypeSubscribers2; this.messageTypeSubscribers.Add(messageTypeSubscribers); } messageTypeSubscribers.subscriberCount++; return(messageTypeSubscribers.messageCallback); }
public UnityEvent <MessageEventArgs> AddAndCreate(Guid messageId) { var MessageTypeSubscriber = messageTypeSubscribers.SingleOrDefault(x => x.MessageTypeId == messageId); if (MessageTypeSubscriber == null) { MessageTypeSubscriber = new MessageTypeSubscribers { MessageTypeId = messageId, messageCallback = new MessageEvent() }; messageTypeSubscribers.Add(MessageTypeSubscriber); } MessageTypeSubscriber.subscriberCount++; return(MessageTypeSubscriber.messageCallback); }