Exemple #1
0
    private static void RegisterGlobalListener(int priority, EventCallback callback)
    {
        List <EventCallback> listeners;

        if (GlobalListeners.TryGetValue(priority, out listeners))
        {
            listeners.Add(callback);
        }
        else
        {
            GlobalListeners.Add(priority, new List <EventCallback> {
                callback
            });
        }
    }
Exemple #2
0
    private static void RemoveGlobalListener(int priority, EventCallback callback)
    {
        List <EventCallback> listeners;

        if (GlobalListeners.TryGetValue(priority, out listeners))
        {
            listeners.Remove(callback);

            // Remove this priority if there are no more listeners
            if (listeners == null || listeners.Count == 0)
            {
                GlobalListeners.RemoveAt(priority);
            }
        }
        else
        {
            // Only log as a warning as this isn't technically an error, just something to keep an eye on as it shouldn't happen.
            Debug.LogWarning($"Trying to remove a callback from priority {priority}, which does not exist for {GenericTypeName}.");
        }
    }