/** * Unregister the event * Also unregisters the key if the key doesn't have any events attached * @param key The key to which the event is attached * @param _Event The event that has to be unregisterd */ public void UnRegisterKey(KeyCode key, GeneralKeyEvent _Event) { if (generalKeyEvents.ContainsKey(key)) { generalKeyEvents[key] -= _Event; if (generalKeyEvents[key] == null) { generalKeyEvents.Remove(key); } } }
//Function that tries to get and fire a event regardless wheter the key is pressed or released private void OnKey(KeyCode key, KeyEventType eventType) { GeneralKeyEvent E = null; if (generalKeyEvents.TryGetValue(key, out E)) { if (E != null) { E(key, eventType); } } }
/** * Register key event regardless whether the key is pressed or released * @param key The keycode of the key that will fire the event * @param _Event The generalkeyevent that will be fired if the key is pressed or released */ public void RegisterKey(KeyCode key, GeneralKeyEvent _Event) { if (generalKeyEvents.ContainsKey(key)) { generalKeyEvents[key] += _Event; //Add event to existing key } else { if (!registerdKeys.Contains(key)) { registerdKeys.Add(key); } generalKeyEvents.Add(key, _Event); //Add key and event in dictionary } }