void OnGUI()
        {
            GUITools.Space(3);
            EditorGUI.BeginChangeCheck();

            windowObject.Update();

            if (GUILayout.Button("Refresh Game Settings"))
            {
                GameSettingsList.RefreshGameSettingsList();
            }

            EditorGUILayout.LabelField("Choose Settings:", EditorStyles.boldLabel);
            AssetSelector.Draw(typeof(GameSettingsObject), selectedSettingsProp, GUIContent.none, OnAssetsLoaded, null);
            windowObject.ApplyModifiedProperties();

            if (EditorGUI.EndChangeCheck())
            {
                OnChangedCurrentObject();
            }

            EditorGUILayout.Space();

            if (selectedSettings == null)
            {
                return;
            }

            if (settingsEditor == null)
            {
                CreateEditor();
            }

            scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
            // draw the object
            settingsEditor.OnInspectorGUI();
            EditorGUILayout.EndScrollView();
        }
        static GameSettingsEditor()
        {
            GameSettingsList.RefreshGameSettingsList();

            EditorApplication.projectChanged += GameSettingsList.RefreshGameSettingsList;
        }