protected override void RegisterButton(ButtonGesture gesture, ulong button)
 {
     m_buttonBindings.Add(gesture, button);
     if (!m_buttonEvents.ContainsKey(gesture))
     {
         m_buttonEvents.Add(gesture, delegate { });
     }
 }
 protected override void RegisterButton(ButtonGesture gesture, KeyCode button)
 {
     // TODO: this does not work, the KeyCodes do not align with the expected string inputs for some reason
     m_buttonBindings.Add(gesture, button);
     if (!m_buttonEvents.ContainsKey(gesture))
     {
         m_buttonEvents.Add(gesture, delegate { });
     }
 }
        protected override void RegisterButton(ButtonGesture gesture, TButton button)
        {
            if (!typeof(TButton).IsEnum)
            {
                Debug.LogError("TButton is not an enum");
                return;
            }

            string input = string.Empty;

            if (m_controllerNumber == 0)
            {
                input = "joystick button " + (int)Enum.Parse(typeof(TButton), button.ToString());
            }
            else
            {
                input = "joystick " + m_controllerNumber.ToString() + " button " + (int)Enum.Parse(typeof(TButton), button.ToString());
            }
            m_buttonBindings.Add(gesture, input);
        }
 protected override void RegisterButton(ButtonGesture gesture, KeyCode button)
 {
     m_buttonBindings.Add(gesture, button);
 }