Пример #1
0
    public static void TriggerEvent(string eventType, RealmEventBase eventData)
    {
        RealmEventTopic thisEvent = null;

        if (instance.realmEventDictionary.TryGetValue(eventType, out thisEvent))
        {
            thisEvent.Invoke(eventData);
        }
    }
Пример #2
0
    /*public static void StartListening<T>(UnityAction<T> listener) where T : RealmEvent {
     *  UnityAction<RealmEvent> callback = (RealmEvent eventData) => {
     *      listener.Invoke((T)Convert.ChangeType(eventData, typeof(T)));
     *  };
     *
     *  StartListening(GetEventType<T>(), callback);
     * }*/

    public static void StartListening(string eventName, UnityAction <RealmEventBase> listener)
    {
        RealmEventTopic thisEvent = null;

        if (instance.realmEventDictionary.TryGetValue(eventName, out thisEvent))
        {
            thisEvent.AddListener(listener);
        }
        else
        {
            RealmEventTopic myEvent = new RealmEventTopic();
            myEvent.AddListener(listener);
            instance.realmEventDictionary.Add(eventName, myEvent);
        }
    }
Пример #3
0
    public static void StopListening(string eventName, UnityAction <RealmEventBase> listener)
    {
        if (eventManager == null)
        {
            return;
        }
        RealmEventTopic thisEvent = null;

        if (instance.realmEventDictionary.TryGetValue(eventName, out thisEvent))
        {
            thisEvent.RemoveListener(listener);
        }
        else
        {
            Debug.Log("Tried to remove non-existent listener on event " + eventName);
        }
    }