Ejemplo n.º 1
0
    public static void RemoveListener(EventTypes eventName, UnityAction <object> listener)
    {
        if (eventManager == null)
        {
            return;
        }
        UnityEventWithObject thisEvent = null;

        if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent))
        {
            thisEvent.RemoveListener(listener);
        }
    }
Ejemplo n.º 2
0
    public static void AddListener(EventTypes eventName, UnityAction <object> listener)
    {
        UnityEventWithObject thisEvent = null;

        if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent))
        {
            thisEvent.AddListener(listener);
        }
        else
        {
            thisEvent = new UnityEventWithObject();
            thisEvent.AddListener(listener);
            Instance.eventDictionary.Add(eventName, thisEvent);
        }
    }
Ejemplo n.º 3
0
    public static void TriggerEvent(EventTypes eventName, object parameter)
    {
        UnityEventWithObject thisEvent = null;

        if (Instance.eventDictionary.TryGetValue(eventName, out thisEvent))
        {
            thisEvent.Invoke(parameter);
        }
        TaskCompletionSource <object> taskCompletion;

        if (Instance.eventCompleteAwaiters.TryGetValue(eventName, out taskCompletion))
        {
            Instance.eventCompleteAwaiters.Remove(eventName);
            taskCompletion.SetResult(parameter);
        }
    }