public static void Subscribe(IGlobalSubscriber subscriber)
        {
            List <Type> subscribersTypes = EventsHandlerHelper.GetSubscriberTypes(subscriber);

            foreach (Type type in subscribersTypes)
            {
                if (!_subscribers.ContainsKey(type))
                {
                    _subscribers[type] = new SubscribersList <IGlobalSubscriber>();
                }
                _subscribers[type].Add(subscriber);
            }
        }
        public static void RaiseEvent <TSubscriber>(Action <TSubscriber> action)
            where TSubscriber : class, IGlobalSubscriber
        {
            SubscribersList <IGlobalSubscriber> subscribers = _subscribers[typeof(TSubscriber)];

            subscribers.Executing = true;
            foreach (IGlobalSubscriber subscriber in subscribers.List)
            {
                try
                {
                    action.Invoke(subscriber as TSubscriber);
                }
                catch (Exception ex)
                {
                    Debug.Log(ex);
                }
            }

            subscribers.Executing = false;
            subscribers.Cleanup();
        }