void InternalSubscribe(int idInput, Action callback, ButtonStats buttonStats) { InputKey key = new InputKey(idInput, callback); listKeys.Add(key); buttonEventDictionary.Add(key, buttonStats); string eventName = GetEventName(idInput, buttonStats); EventManager.Subscribe(GetEventName(idInput, buttonStats), callback); }
void InternalUnsubscribe(int idInput, ButtonStats buttonStats, Action callback) { //might bug, si ca bug, faire de la reflexion et save la methode du callback InputKey key = new InputKey(idInput, callback); listKeys.Remove(key); buttonEventDictionary.Remove(key); string eventName = GetEventName(idInput, buttonStats); EventManager.Unsubscribe(eventName, callback); }
string GetEventName(int idInput, ButtonStats buttonStats) { string buttonType = ""; switch (buttonStats) { case ButtonStats.Down: buttonType = ButtonDown; break; case ButtonStats.Up: buttonType = ButtonUp; break; case ButtonStats.Hold: buttonType = ButtonHold; break; } return(buttonType + ID + "_" + idInput); }