Esempio n. 1
0
    public void RegisterHandler(string evt, EVT_HANDLER handler)
    {
        HashSet <EVT_HANDLER> handlers;

        if (!evtMap.TryGetValue(evt, out handlers))
        {
            handlers = new HashSet <EVT_HANDLER>();
            evtMap.Add(evt, handlers);
        }

        if (handlers.Contains(handler))
        {
            Debug.LogError("Same handler register twice!!!");
            return;
        }

        handlers.Add(handler);
    }
Esempio n. 2
0
    public void UnregisterHandler(string evt, EVT_HANDLER handler)
    {
        HashSet <EVT_HANDLER> handlers;

        if (!evtMap.TryGetValue(evt, out handlers))
        {
            return;
        }

        if (!handlers.Contains(handler))
        {
            return;
        }

        handlers.Remove(handler);
        if (handlers.Count == 0)
        {
            evtMap.Remove(evt);
        }
    }