public void RegisterEventListener(KeyCode keyCode, GUITextComponentOnEvent listener) { lock(listeners) { if (!listeners.ContainsKey(keyCode)) { listeners[keyCode] = new HashSet<GUITextComponentOnEvent>(); } HashSet<GUITextComponentOnEvent> keyListeners = listeners[keyCode]; keyListeners.Add(listener); } }
public bool UnregisterEventListener(KeyCode keyCode, GUITextComponentOnEvent listener) { bool removed = false; lock(listeners) { if (listeners.ContainsKey(keyCode)) { removed = listeners[keyCode].Remove(listener); if (listeners[keyCode].Count == 0) { listeners.Remove(keyCode); } } } return removed; }