public DvancedSettingData Add(DvancedSettingItem item)
            {
                if (!dict.ContainsKey(item.type))
                {
                    dict.Add(item.type, item);
                    list.Add(item);
                }

                return(this);
            }
        void OnGUI()
        {
            VersionList.Read();



            TabType tabType = HGUILayout.TabGroup <TabType>(tabGroupData);

            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
            GUILayout.Space(20);


            currentDvancedSettingData = dvancedSettingDataDict[tabType];
            switch (tabType)
            {
            case TabType.Develop:
                OnGUI_Develop();
                break;

            case TabType.App:
                OnGUI_App();
                break;

            case TabType.Patch:
                OnGUI_Patch();
                break;
            }



            currentDvancedSettingData.foldout = EditorGUILayout.Foldout(currentDvancedSettingData.foldout, "高级设置");

            if (currentDvancedSettingData.foldout)
            {
                GUILayout.BeginVertical(HGUILayout.boxMPStyle);
                for (int i = 0; i < currentDvancedSettingData.list.Count; i++)
                {
                    DvancedSettingItem item = currentDvancedSettingData.list[i];



                    GUILayout.BeginHorizontal();
                    item.value = EditorGUILayout.ToggleLeft(item.name, item.value, GUILayout.Width(250));



                    if (GUILayout.Button(item.name, GUILayout.Width(250)))
                    {
                        switch (item.type)
                        {
                        case DvancedSettingType.ClearAllPlatformDirctory:
                            PathUtil.ClearAllPlatformDirctory();
                            AssetDatabase.Refresh();
                            break;


                        case DvancedSettingType.ClearOtherPlatformDirctory:
                            PathUtil.ClearOtherPlatformDirctory(runtimePlatform);
                            AssetDatabase.Refresh();
                            break;


                        case DvancedSettingType.ClearTestData:
                            PathUtil.ClearTestData();
                            AssetDatabase.Refresh();
                            break;


                        case DvancedSettingType.AB_luacode:
                            AB.Lua();
                            break;

                        case DvancedSettingType.AB_config:
                            AB.Config();
                            break;



                        case DvancedSettingType.Clear_AssetBundleName:
                            AssetBundleEditor.ClearAssetBundleNames();
                            AssetDatabase.RemoveUnusedAssetBundleNames();
                            break;

                        case DvancedSettingType.Set_AssetBundleName:
                            AssetBundleEditor.SetNames();
                            break;



                        case DvancedSettingType.GameConstConfig:

                            GameConstConfig config = GameConstConfig.Load();
                            switch (tabType)
                            {
                            case TabType.Develop:
                                config.DevelopMode     = true;
                                config.TestVersionMode = false;
                                break;

                            case TabType.App:
                                config.DevelopMode = false;
                                config.Version     = appVersion.ToConfig();
                                break;

                            case TabType.Patch:
                                config.DevelopMode = false;
                                config.Version     = patchVersion.ToConfig();
                                break;
                            }

                            config.Save();
                            break;


                        case DvancedSettingType.GeneratorStreamingAssetsFilesCSV:
                            switch (tabType)
                            {
                            case TabType.App:
                            case TabType.Patch:
                                FilesCsvForStreamingAssets.Generator();
                                break;

                            case TabType.Develop:
                                FilesCsvForStreamingAssets.Generator(true);
                                break;
                            }
                            break;


                        case DvancedSettingType.GeneratorResourcesFilesCSV:
                            FilesCsvForResources.Generator();
                            break;


                        case DvancedSettingType.PlayerSettings:
                            SetPlayerSettings(runtimePlatform);
                            break;

                        case DvancedSettingType.PlayerSettingsVersion:
                            switch (tabType)
                            {
                            case TabType.App:
                                SetPlayerSettingsVersion(appVersion);
                                break;

                            case TabType.Patch:
                                SetPlayerSettingsVersion(patchVersion);
                                break;
                            }
                            break;


                        case DvancedSettingType.GenerateVersionInfo:
                            switch (tabType)
                            {
                            case TabType.App:
                                appVersion.SetNowDatetime();
                                FilesCsvForStreamingAssets.CopyStreamFilesCsvToVersion(appVersion);
                                break;

                            case TabType.Patch:
                                patchVersion.SetNowDatetime();
                                FilesCsvForStreamingAssets.CopyStreamFilesCsvToVersion(patchVersion);
                                break;
                            }
                            break;

                        case DvancedSettingType.GeneratorUpdateAssetList:
                            switch (tabType)
                            {
                            case TabType.App:
                                FilesCsvForStreamingAssets.GeneratorUpdateList(null);
                                break;

                            case TabType.Patch:
                                FilesCsvForStreamingAssets.GeneratorUpdateList(compareVersion);
                                break;
                            }
                            break;
                        }
                    }

                    GUILayout.EndHorizontal();

                    GUILayout.Space(10);
                }
                GUILayout.EndVertical();
            }



            switch (tabType)
            {
            case TabType.App:
            case TabType.Patch:
                OnGUI_AssetBundleServer();
                OnGUI_TestVersionModel();
                break;
            }

            EditorGUILayout.EndScrollView();
        }