public void UnregisterManagedCallback(Guid messageId, UnityAction <MessageEventArgs> callback) { PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.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) { PlayerEditorConnectionEvents.MessageTypeSubscribers messageTypeSubscribers = this.messageTypeSubscribers.SingleOrDefault((PlayerEditorConnectionEvents.MessageTypeSubscribers x) => x.MessageTypeId == messageId); if (messageTypeSubscribers == null) { messageTypeSubscribers = new PlayerEditorConnectionEvents.MessageTypeSubscribers { MessageTypeId = messageId, messageCallback = new PlayerEditorConnectionEvents.MessageEvent() }; this.messageTypeSubscribers.Add(messageTypeSubscribers); } messageTypeSubscribers.subscriberCount++; return(messageTypeSubscribers.messageCallback); }