public KeyBindingDatabase Build(KeyGroupData[] data)
        {
            m_KeyNameID.Clear();
            m_IdIndex = 0;

            KeyGroup[] ControlGroups = new KeyGroup[data.Length];
            for (int i = 0; i < data.Length; i++)
            {
                ControlGroups[i] = CreateControlGroup(data[i]);
            }
            return(new KeyBindingDatabase(ControlGroups, m_KeyNameID, m_modifierRegister));
        }
        public Key GetInteralKey(int id)
        {
            KeyGroup group = FindContainingGroup(id);

            for (int i = 0; i < group.Keys.Length; i++)
            {
                if (group.Keys[i].ID == id)
                {
                    return(group.Keys[i]);
                }
            }
            return(null);
        }
        public bool GetKeyDown(int id)
        {
            KeyGroup group = FindContainingGroup(id);

            if (group.Active)
            {
                return(group.GetKey(id).IsPressed);
            }
            else
            {
                return(false);
            }
        }