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);
        }
Exemple #3
0
        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);
        }