private void AndroidPanel() { var ps = G.Module.UserConfig.Json.PlayerSettings; scrollPosition_Android = EditorGUILayout.BeginScrollView(scrollPosition_Android); EditorGUILayout.LabelField("Identity", EditorStyles.boldLabel); EBPEditorGUILayout.TextField("Package Name", ref ps.Android.PackageName, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Deployment Info", EditorStyles.boldLabel); ps.Android.WritePermission = (Configs.UserConfig.PlayerSettings.AndroidSettings.WritePermissionEnum)EBPEditorGUILayout.EnumPopup("Write Permission", ps.Android.WritePermission, OnValueChanged); ps.Android.DeviceFilter = (AndroidTargetDevice)EBPEditorGUILayout.EnumPopup("Device Filter", ps.Android.DeviceFilter, OnValueChanged); ps.Android.InstallLocation = (AndroidPreferredInstallLocation)EBPEditorGUILayout.EnumPopup("Install Location", ps.Android.InstallLocation, OnValueChanged); ps.Android.InternetAccess = (Configs.UserConfig.PlayerSettings.AndroidSettings.InternetAccessEnum)EBPEditorGUILayout.EnumPopup("Internet Access", ps.Android.InternetAccess, OnValueChanged); EditorGUILayout.Separator(); ps.Android.MinimumAPILevel = (AndroidSdkVersions)EBPEditorGUILayout.EnumPopup("Minimum API Level", ps.Android.MinimumAPILevel, OnValueChanged); ps.Android.TargetAPILevel = (AndroidSdkVersions)EBPEditorGUILayout.EnumPopup("Target API Level", ps.Android.TargetAPILevel, OnValueChanged); EditorGUILayout.Separator(); ps.Android.BuildSystem = (AndroidBuildSystem)EBPEditorGUILayout.EnumPopup("Build System", ps.Android.BuildSystem, OnValueChanged); EBPEditorGUILayout.Toggle("Use OBB Mode", ref ps.Android.UseObbMode, OnValueChanged); EBPEditorGUILayout.TextField("Keystore Name", ref ps.Android.KeystoreName, OnValueChanged); EBPEditorGUILayout.TextField("Keystore Pass", ref ps.Android.KeystorePass, OnValueChanged); EBPEditorGUILayout.TextField("Keyalias Name", ref ps.Android.KeyaliasName, OnValueChanged); EBPEditorGUILayout.TextField("Keyalias Pass", ref ps.Android.KeyaliasPass, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Support", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Android TV Compatibility", ref ps.Android.AndroidTVCompatibility, OnValueChanged); EBPEditorGUILayout.Toggle("Android Game", ref ps.Android.AndroidGame, OnValueChanged); //ps.Android.AndroidGameSupprot EditorGUILayout.Separator(); EditorGUILayout.LabelField("Optimization", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Strip Engine Code", ref ps.Android.StripEngineCode, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Resolution", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Preserve Framebuffer Alpha", ref ps.Android.PreserveFramebufferAlpha, OnValueChanged); ps.Android.BlitType = (AndroidBlitType)EBPEditorGUILayout.EnumPopup("Blit Type", ps.Android.BlitType, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Rendering", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Protect Graphics Memory", ref ps.Android.ProtectGraphicsMemory, OnValueChanged); EditorGUILayout.Separator(); CopyListPanel(BuildTarget.Android, ref ps.Android.CopyDirectoryRegex, ref ps.Android.CopyFileRegex); EditorGUILayout.EndScrollView(); }
private void GeneralPanel() { var ps = G.Module.UserConfig.Json.PlayerSettings; scrollPosition_General = EditorGUILayout.BeginScrollView(scrollPosition_General); EditorGUILayout.LabelField("General Player Settings", EditorStyles.boldLabel); EBPEditorGUILayout.TextField("Company Name", ref ps.General.CompanyName, OnValueChanged); EBPEditorGUILayout.TextField("Product Name", ref ps.General.ProductName, OnValueChanged); EditorGUILayout.Separator(); ps.General.Channel = (EazyGameChannel.Channels)EBPEditorGUILayout.EnumPopup("Channel", ps.General.Channel, OnValueChanged); EditorGUILayout.Separator(); EBPEditorGUILayout.TextField("Game Config URL", ref ps.General.ConfigURL_Game, OnValueChanged); EBPEditorGUILayout.TextField("Language Config URL", ref ps.General.ConfigURL_Language, OnValueChanged); EBPEditorGUILayout.TextField("LanguageVersion Config URL", ref ps.General.ConfigURL_LanguageVersion, OnValueChanged); EditorGUILayout.Separator(); EBPEditorGUILayout.TextField("BuglyAppID", ref ps.General.BuglyAppID, OnValueChanged); EBPEditorGUILayout.TextField("BuglyAppKey", ref ps.General.BuglyAppKey, OnValueChanged); EditorGUILayout.Separator(); //EditorGUILayout.LabelField("Download Configs & Language", EditorStyles.boldLabel); //ps.General.DownloadConfigType = (Configs.UserConfig.PlayerSettings.GeneralSettings.DownloadConfigTypeEnum)EBPEditorGUILayout.EnumPopup("Configs", ps.General.DownloadConfigType, OnValueChanged); //ps.General.DownloadLanguageType = (WowGamePlay.LanguageType)EBPEditorGUILayout.EnumPopup("Language", ps.General.DownloadLanguageType, OnValueChanged); //EditorGUILayout.Separator(); EditorGUILayout.LabelField("Build Settings", EditorStyles.boldLabel); G.Module.UserConfig.Json.BuildSettings.CompressionMethod = (Configs.UserConfig.BuildSettings.CompressionMethodEnum)EBPEditorGUILayout.EnumPopup("Compression Method", G.Module.UserConfig.Json.BuildSettings.CompressionMethod, OnValueChanged); EditorGUILayout.Separator(); //以下为当前配置,不保存在配置文件中 using (var tempBuildScope = new GUILayout.VerticalScope("box")) { EditorGUILayout.LabelField("Temp Build Settings", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Development Build", ref G.Module.ModuleStateConfig.Json.DevelopmentBuild); EditorGUI.BeginDisabledGroup(!G.Module.ModuleStateConfig.Json.DevelopmentBuild); EBPEditorGUILayout.Toggle("AutoConnect Profiler", ref G.Module.ModuleStateConfig.Json.ConnectWithProfiler); EBPEditorGUILayout.Toggle("Script Debugging", ref G.Module.ModuleStateConfig.Json.AllowDebugging); EditorGUI.EndDisabledGroup(); } EditorGUILayout.EndScrollView(); }
public void OnGUI() { GUILayout.FlexibleSpace(); EBPEditorGUILayout.RootSettingLine(G.Module, ChangeRootPath); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); if (ShowTagsDropdown()) { return; } GUILayout.FlexibleSpace(); EditorGUILayout.LabelField("Resource Version:", labelOptions); G.Module.ModuleStateConfig.Json.ResourceVersion = EditorGUILayout.IntField(G.Module.ModuleStateConfig.Json.ResourceVersion, inputOptions); G.Module.ModuleStateConfig.Json.CleanUpBundles = GUILayout.Toggle(G.Module.ModuleStateConfig.Json.CleanUpBundles, "CleanUp"); GUILayout.Space(10); //压缩选项 int selectedCompressionIndex_new = EditorGUILayout.Popup(selectedCompressionIndex, G.Module.CompressionEnum, dropdownStyle, dropdownOptions2); if (selectedCompressionIndex_new != selectedCompressionIndex) { G.Module.ModuleStateConfig.Json.CurrentBuildAssetBundleOptionsValue -= (int)G.Module.CompressionEnumMap[G.Module.CompressionEnum[selectedCompressionIndex]]; G.Module.ModuleStateConfig.Json.CurrentBuildAssetBundleOptionsValue += (int)G.Module.CompressionEnumMap[G.Module.CompressionEnum[selectedCompressionIndex_new]]; selectedCompressionIndex = selectedCompressionIndex_new; return; } if (G.Module.StateConfigAvailable) { if (GUILayout.Button(new GUIContent("Build Bundles"), buttonStyle, defaultOptions)) { ClickedApply(); return; } } else { if (GUILayout.Button(new GUIContent("Check"), buttonStyle, defaultOptions)) { ClickedCheck(); return; } } EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); }
public void OnGUI() { if (creatingNewConfig == true && GUI.GetNameOfFocusedControl() != "InputField1") { creatingNewConfig = false; } GUILayout.FlexibleSpace(); EBPEditorGUILayout.RootSettingLine(G.Module, ChangeRootPath); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUILayout.Space(10); if (GUILayout.Button(new GUIContent("New", "新建配置文件"), buttonStyle, buttonOptions)) { ClickedNew(); return; } if (GUILayout.Button(new GUIContent("Save", "保存配置文件"), buttonStyle, buttonOptions)) { ClickedSave(); return; } if (creatingNewConfig) { ShowInputField(); } else { if (ShowDropdown()) { return; } } if (GUILayout.Button(new GUIContent(EditorGUIUtility.FindTexture("ViewToolOrbit"), "查看该文件"), GUILayout.Height(25))) { ClickedShowConfigFile(); return; } EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Sync Directory", "同步Assets目录结构"), buttonStyle, GUILayout.MaxHeight(25), GUILayout.MaxWidth(120))) { ClickedSyncDirectory(); return; } GUILayout.FlexibleSpace(); if (GUILayout.Button(new GUIContent("Revert"), buttonStyle, buttonOptions)) { ClickedRevert(); return; } if (G.Module.StateConfigAvailable) { if (GUILayout.Button(new GUIContent("Apply"), buttonStyle, buttonOptions)) { ClickedApply(); return; } } else { if (GUILayout.Button(new GUIContent("Check"), buttonStyle, buttonOptions)) { ClickedCheck(); return; } } EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); }
public void OnGUI(Rect rect) { if (creatingNewConfig == true && GUI.GetNameOfFocusedControl() != "InputField1") { creatingNewConfig = false; } GUILayout.BeginArea(rect, GUIContent.none); //SettingPanel EditorGUILayout.BeginVertical(EditorStyles.helpBox); GUILayout.FlexibleSpace(); EBPEditorGUILayout.RootSettingLine(G.Module, ChangeRootPath); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(LoadBundlesFromConfig); if (ShowTagsDropdown()) { return; } EditorGUI.EndDisabledGroup(); GUILayout.FlexibleSpace(); GUILayout.Space(10); if (GUILayout.Button(new GUIContent("New", "新建配置文件"), buttonStyle, buttonOptions)) { ClickedNew(); return; } if (GUILayout.Button(new GUIContent("Save", "保存配置文件"), buttonStyle, buttonOptions)) { ClickedSave(); return; } if (creatingNewConfig) { ShowInputField(); } else { if (ShowMapDropdown()) { return; } } if (GUILayout.Button(new GUIContent(EditorGUIUtility.FindTexture("ViewToolOrbit"), "查看该文件"), buttonStyle, GUILayout.Height(25))) { ClickedShowConfigFile(); return; } EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); bool result = EditorGUILayout.Toggle(GUIContent.none, LoadBundlesFromConfig, GUILayout.Width(16)); if (result != LoadBundlesFromConfig) { LoadBundlesFromConfig = result; G.g.bundleTree.LoadBundlesFromConfig = result; OnChangeBundles(); return; } EditorGUI.BeginDisabledGroup(!LoadBundlesFromConfig); if (ShowBundleConfigsDropdown()) { return; } GUILayout.FlexibleSpace(); EditorGUI.EndDisabledGroup(); EditorGUILayout.LabelField("Mode:", labelStyle, shortLabelOptions2); int currentPackageModeIndex_new = EditorGUILayout.Popup(selectedPackageModeIndex, G.PackageModeEnum, dropdownStyle, shortPopupOptions); if (selectedPackageModeIndex != currentPackageModeIndex_new) { selectedPackageModeIndex = currentPackageModeIndex_new; G.Module.UserConfig.Json.PackageMode = G.PackageModeEnum[selectedPackageModeIndex]; G.g.packageTree.UpdateAllFileName(); G.Module.IsDirty = true; return; } GUILayout.Space(10); EditorGUILayout.LabelField("Lua:", labelStyle, shortLabelOptions); int currentLuaSourceIndex_new = EditorGUILayout.Popup(selectedLuaSourceIndex, G.LuaSourceEnum, dropdownStyle, shortPopupOptions); if (selectedLuaSourceIndex != currentLuaSourceIndex_new) { selectedLuaSourceIndex = currentLuaSourceIndex_new; G.Module.UserConfig.Json.LuaSource = G.LuaSourceEnum[selectedLuaSourceIndex]; G.Module.IsDirty = true; return; } GUILayout.Space(10); EditorGUILayout.LabelField("CompressLevel:", labelStyle, labelOptions); int compressionLevel_new = EditorGUILayout.IntPopup(G.Module.UserConfig.Json.CompressionLevel, compressionLevelsEnumStr, compressionLevelEnum, dropdownStyle, miniPopupOptions); if (compressionLevel_new != G.Module.UserConfig.Json.CompressionLevel) { G.Module.UserConfig.Json.CompressionLevel = compressionLevel_new; G.Module.IsDirty = true; return; } GUILayout.Space(20); if (GUILayout.Button(new GUIContent("Revert"), buttonStyle, buttonOptions)) { ClickedRevert(); return; } if (G.Module.StateConfigAvailable && !LoadBundlesFromConfig) { if (GUILayout.Button(new GUIContent("Build"), buttonStyle, buttonOptions)) { ClickedApply(); return; } } else { if (GUILayout.Button(new GUIContent("Check"), buttonStyle, buttonOptions)) { ClickedCheck(); return; } } EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); EditorGUILayout.EndVertical(); //VersionPanel EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); EditorGUILayout.LabelField("Resource Version: " + G.Module.ModuleStateConfig.Json.ResourceVersion, labelStyle, GUILayout.MaxWidth(150)); GUILayout.FlexibleSpace(); if (G.Module.UserConfig.Json.PackageMode == "Addon") { EditorGUILayout.LabelField("Client Version:", labelStyle, GUILayout.MaxWidth(110)); string addonVersion_new = EditorGUILayout.TextField(G.Module.ModuleStateConfig.Json.ClientVersion); { if (!string.IsNullOrEmpty(addonVersion_new)) { addonVersion_new = addonVersion_new.Trim(); } if (addonVersion_new != G.Module.ModuleStateConfig.Json.ClientVersion) { G.Module.ModuleStateConfig.Json.ClientVersion = addonVersion_new; G.g.packageTree.UpdateAllFileName(); return; } } } EditorGUILayout.EndHorizontal(); GUILayout.EndArea(); }
private void CopyListPanel(BuildTarget buildTarget, ref string directoryRegex, ref string fileRegex) { switch (buildTarget) { case BuildTarget.Android: copyList = G.Module.UserConfig.Json.PlayerSettings.Android.CopyList; break; case BuildTarget.iOS: copyList = G.Module.UserConfig.Json.PlayerSettings.IOS.CopyList; break; default: break; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Copy Directory", EditorStyles.boldLabel); GUILayout.Label("Active/Revert"); GUILayout.FlexibleSpace(); if (GUILayout.Button("Copy Now")) { CopyNow(buildTarget); } if (GUILayout.Button("Revert Now")) { RevertNow(); } if (GUILayout.Button("+")) { copyList.Add(new Configs.UserConfig.PlayerSettings.CopyItem()); OnValueChanged(); } //EBPEditorGUILayout.TextField(" Directory Regex:", ref directoryRegex, OnValueChanged, GUILayout.MaxWidth(100000)); //EBPEditorGUILayout.TextField(" File Regex:", ref fileRegex, OnValueChanged, GUILayout.MaxWidth(100000)); //GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); for (int i = 0; i < copyList.Count; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("-"); EBPEditorGUILayout.Toggle(null, ref copyList[i].Active, OnValueChanged); using (var scope = new EditorGUI.DisabledGroupScope(!copyList[i].Active)) { EBPEditorGUILayout.Toggle(null, ref copyList[i].Revert, OnValueChanged); EBPEditorGUILayout.TextField(null, ref copyList[i].SourcePath, OnValueChanged, GUILayout.MaxWidth(100000)); EditorGUILayout.LabelField("→", GUILayout.Width(15)); EBPEditorGUILayout.TextField(null, ref copyList[i].TargetPath, OnValueChanged, GUILayout.MaxWidth(100000)); copyList[i].CopyMode = (CopyMode)EBPEditorGUILayout.EnumPopup(null, copyList[i].CopyMode, OnValueChanged, GUILayout.Width(70)); } if (GUILayout.Button("-") && ((string.IsNullOrEmpty(copyList[i].SourcePath) && string.IsNullOrEmpty(copyList[i].TargetPath)) || G.Module.DisplayDialog("确定删除该项?", "确定", "取消"))) { copyList.RemoveAt(i); OnValueChanged(); EditorGUIUtility.editingTextField = false; } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); } }
private void IOSPanel() { var ps = G.Module.UserConfig.Json.PlayerSettings; scrollPosition_IOS = EditorGUILayout.BeginScrollView(scrollPosition_IOS); EditorGUILayout.LabelField("Identity", EditorStyles.boldLabel); EBPEditorGUILayout.TextField("Bundle Identifier", ref ps.IOS.BundleID, OnValueChanged); EditorGUILayout.Separator(); using (new EditorGUILayout.HorizontalScope()) { EditorGUILayout.PrefixLabel("Signing", EditorStyles.boldLabel); if (GUILayout.Button("Open Provising Profile", GUILayout.MaxWidth(160))) { string path = EditorUtility.OpenFilePanel("Select the Provising Profile used for Manual Signing", null, "mobileprovision"); if (!string.IsNullOrEmpty(path)) { EditorGUIUtility.editingTextField = false; string text = File.ReadAllText(path, System.Text.Encoding.UTF8); int start = text.IndexOf("<plist"); int len = text.IndexOf("</plist") - start; string plistStr = text.Substring(start, len) + "</plist>"; PlistDocument plist = new PlistDocument(); plist.ReadFromString(plistStr.Replace("date", "string")); //Hack: 此处date替换为string是因为这个PlistDocument不能识别date类型导致报错 ps.IOS.ProfileID = plist.root.values["UUID"].AsString(); ps.IOS.TeamID = plist.root.values["TeamIdentifier"].AsArray().values[0].AsString(); } } } EBPEditorGUILayout.TextField("Team ID", ref ps.IOS.TeamID, OnValueChanged); EBPEditorGUILayout.Toggle("Automatically Sign", ref ps.IOS.AutomaticallySign, OnValueChanged); EditorGUI.BeginDisabledGroup(ps.IOS.AutomaticallySign); EBPEditorGUILayout.TextField("Profile ID", ref ps.IOS.ProfileID, OnValueChanged); EditorGUI.EndDisabledGroup(); EditorGUILayout.Separator(); EditorGUILayout.LabelField("IPA Export Options", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Export IPA", ref ps.IOS.IPAExportOptions.ExportIPA, OnValueChanged); EditorGUI.BeginDisabledGroup(!ps.IOS.IPAExportOptions.ExportIPA); EBPEditorGUILayout.Toggle("CompileBitcode", ref ps.IOS.IPAExportOptions.CompileBitcode, OnValueChanged); using (new EditorGUILayout.HorizontalScope()) { EBPEditorGUILayout.TextField("Method", ref ps.IOS.IPAExportOptions.Method, OnValueChanged); if (GUILayout.Button("Options", GUILayout.MaxWidth(60))) { EditorGUIUtility.editingTextField = false; GenericMenu menu = new GenericMenu(); foreach (var option in ps.IOS.IPAExportOptions.Methods) { menu.AddItem(new GUIContent(option), false, () => { ps.IOS.IPAExportOptions.Method = option; }); } menu.ShowAsContext(); } } EditorGUI.EndDisabledGroup(); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Deployment Info", EditorStyles.boldLabel); ps.IOS.TargetDevice = (iOSTargetDevice)EBPEditorGUILayout.EnumPopup("Target Device", ps.IOS.TargetDevice, OnValueChanged); ps.IOS.TargetSDK = (iOSSdkVersion)EBPEditorGUILayout.EnumPopup("Target SDK", ps.IOS.TargetSDK, OnValueChanged); EBPEditorGUILayout.TextField("Target minimum Version", ref ps.IOS.TargetMinimumIOSVersion, OnValueChanged); ps.IOS.Architecture = (Configs.UserConfig.PlayerSettings.IOSSettings.ArchitectureEnum)EBPEditorGUILayout.EnumPopup("Architecture", ps.IOS.Architecture, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Optimization", EditorStyles.boldLabel); EBPEditorGUILayout.Toggle("Strip Engine Code", ref ps.IOS.StripEngineCode, OnValueChanged); ps.IOS.ScriptCallOptimization = (ScriptCallOptimizationLevel)EBPEditorGUILayout.EnumPopup("Script Call Optimization", ps.IOS.ScriptCallOptimization, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Description", EditorStyles.boldLabel); EBPEditorGUILayout.TextField("Camera Usage Desc", ref ps.IOS.CameraUsageDesc, OnValueChanged); EBPEditorGUILayout.TextField("Location Usage Desc", ref ps.IOS.LocationUsageDesc, OnValueChanged); EBPEditorGUILayout.TextField("Microphone Usage Desc", ref ps.IOS.MicrophoneUsageDesc, OnValueChanged); EBPEditorGUILayout.TextField("BlueTooth Usage Desc", ref ps.IOS.BlueToothUsageDesc, OnValueChanged); EBPEditorGUILayout.TextField("Photo Usage Desc", ref ps.IOS.PhotoUsageDesc, OnValueChanged); EBPEditorGUILayout.TextField("Photo Usage Add Desc", ref ps.IOS.PhotoUsageAddDesc, OnValueChanged); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Others", EditorStyles.boldLabel); //EBPEditorGUILayout.TextField("Third FrameWork Path", ref ps.IOS.ThirdFrameWorkPath, OnValueChanged); //EBPEditorGUILayout.Toggle("IsBuildArchive", ref ps.IOS.IsBuildArchive, OnValueChanged); //EditorGUI.BeginDisabledGroup(!ps.IOS.IsBuildArchive); //EBPEditorGUILayout.TextField("Export Ipa Path", ref ps.IOS.ExportIpaPath, OnValueChanged); //EBPEditorGUILayout.TextField("TaskPath", ref ps.IOS.TaskPath, OnValueChanged); //EditorGUI.EndDisabledGroup(); EditorGUILayout.Separator(); CopyListPanel(BuildTarget.iOS, ref ps.IOS.CopyDirectoryRegex, ref ps.IOS.CopyFileRegex); EditorGUILayout.EndScrollView(); }
public void OnGUI() { scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); if (creatingNewConfig == true && GUI.GetNameOfFocusedControl() != "InputField1") { creatingNewConfig = false; } //Root GUILayout.FlexibleSpace(); EBPEditorGUILayout.RootSettingLine(PlayerBuilder.G.Module, ChangeRootPath); GUILayout.FlexibleSpace(); //SVN Update EditorGUILayout.BeginHorizontal(); FrontIndicator(currentStep == Step.SVNUpdate, false, G.Module.SVNUpdateRunner.errorMessage); G.Module.SVNUpdateRunner.IsPartOfPipeline = GUILayout.Toggle(G.Module.SVNUpdateRunner.IsPartOfPipeline, "SVN Update", GUILayout.Width(200)) && G.Module.SVNUpdateRunner.Available; SVNInfo(); if (GUILayout.Button(refreshIcon, miniButtonOptions)) { RunSVNCheckProcess(); } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //AssetPreprocessor EditorGUILayout.BeginHorizontal(); FrontIndicator(currentStep == Step.PreprocessAssets, G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.Applying, G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.ErrorMessage); G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.IsPartOfPipeline = EditorGUILayout.BeginToggleGroup( assetPreprocessorContent, G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.IsPartOfPipeline); EditorGUILayout.BeginHorizontal(); int index_new = EditorGUILayout.Popup(assetPreprocessorUserConfigSelectedIndex, assetPreprocessorUserConfigNames, dropdownOptions); if (assetPreprocessorUserConfigSelectedIndex != index_new) { assetPreprocessorUserConfigSelectedIndex = index_new; G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.CurrentUserConfigName = assetPreprocessorUserConfigNames[index_new] + ".json"; G.Module.AssetPreprocessorModule.LoadUserConfig(); return; } if (GUILayout.Button(settingGUIContent, miniButtonOptions)) { AssetPreprocessor.G.OverrideCurrentUserConfigName = G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.CurrentUserConfigName; if (AssetPreprocessor.G.g == null) { EditorWindow.GetWindow <AssetPreprocessor.Editor.AssetPreprocessorWindow>(); AssetPreprocessor.G.g.OnChangeCurrentUserConfig += Action_AssetPreprocessor_OnChangeCurrentConfig; AssetPreprocessor.G.g.OnChangeConfigList += Action_OnChangeConfigList; } else { EditorWindow.GetWindow <AssetPreprocessor.Editor.AssetPreprocessorWindow>(); } return; } GUILayout.Space(10); GUILayout.Label(G.Module.AssetPreprocessorModule.ModuleStateConfig.Json.IsPartOfPipeline ? "<color=orange>→ " + EBPUtility.GetTagStr(G.Module.AssetPreprocessorModule.UserConfig.Json.Tags) + "</color>" : "<color=cyan>" + EBPUtility.GetTagStr(CommonModule.CommonConfig.Json.CurrentAssetTag) + "</color>", richTextLabel); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndToggleGroup(); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //BundleManager EditorGUILayout.BeginHorizontal(); FrontIndicator(currentStep == Step.BuildBundles, G.Module.BundleManagerModule.ModuleStateConfig.Json.Applying, G.Module.BundleManagerModule.ModuleStateConfig.Json.ErrorMessage); G.Module.BundleManagerModule.ModuleStateConfig.Json.IsPartOfPipeline = EditorGUILayout.BeginToggleGroup( bundleManagerContent, G.Module.BundleManagerModule.ModuleStateConfig.Json.IsPartOfPipeline); EditorGUILayout.BeginHorizontal(); index_new = EditorGUILayout.Popup(bundleManagerUserConfigSelectedIndex, bundleManagerUserConfigNames, dropdownOptions); if (bundleManagerUserConfigSelectedIndex != index_new) { bundleManagerUserConfigSelectedIndex = index_new; G.Module.BundleManagerModule.ModuleStateConfig.Json.CurrentUserConfigName = bundleManagerUserConfigNames[index_new] + ".json"; return; } if (GUILayout.Button(settingGUIContent, miniButtonOptions)) { if (BundleManager.G.g == null) { EditorWindow.GetWindow <BundleManager.Editor.BundleManagerWindow>(); BundleManager.G.g.OnChangeConfigList += Action_OnChangeConfigList; } else { EditorWindow.GetWindow <BundleManager.Editor.BundleManagerWindow>(); } return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndToggleGroup(); GUILayout.Space(10); EditorGUILayout.LabelField("Resource Version:", labelOptions); int n = EditorGUILayout.IntField(G.Module.BundleManagerModule.ModuleStateConfig.Json.ResourceVersion, inputOptions); if (G.Module.BundleManagerModule.ModuleStateConfig.Json.ResourceVersion != n) { G.Module.BundleManagerModule.ModuleStateConfig.Json.ResourceVersion = n; } int selectedCompressionIndex_new = EditorGUILayout.Popup(selectedCompressionIndex, G.Module.BundleManagerModule.CompressionEnum, dropdownOptions2); if (selectedCompressionIndex_new != selectedCompressionIndex) { G.Module.BundleManagerModule.ModuleStateConfig.Json.CompressionOption = G.Module.BundleManagerModule.CompressionEnumMap[G.Module.BundleManagerModule.CompressionEnum[selectedCompressionIndex_new]]; selectedCompressionIndex = selectedCompressionIndex_new; return; } G.Module.BundleManagerModule.ModuleStateConfig.Json.CleanUpBundles = GUILayout.Toggle(G.Module.BundleManagerModule.ModuleStateConfig.Json.CleanUpBundles, "CleanUp"); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //PackageManager EditorGUILayout.BeginHorizontal(); FrontIndicator(currentStep == Step.BuildPackages, G.Module.PackageManagerModule.ModuleStateConfig.Json.Applying, G.Module.PackageManagerModule.ModuleStateConfig.Json.ErrorMessage); G.Module.PackageManagerModule.ModuleStateConfig.Json.IsPartOfPipeline = EditorGUILayout.BeginToggleGroup( packageManagerContent, G.Module.PackageManagerModule.ModuleStateConfig.Json.IsPartOfPipeline); EditorGUILayout.BeginHorizontal(); index_new = EditorGUILayout.Popup(packageManagerUserConfigSelectedIndex, packageManagerUserConfigNames, dropdownOptions); if (packageManagerUserConfigSelectedIndex != index_new) { packageManagerUserConfigSelectedIndex = index_new; G.Module.PackageManagerModule.ModuleStateConfig.Json.CurrentUserConfigName = packageManagerUserConfigNames[index_new] + ".json"; return; } if (GUILayout.Button(settingGUIContent, miniButtonOptions)) { PackageManager.G.OverrideCurrentUserConfigName = G.Module.PackageManagerModule.ModuleStateConfig.Json.CurrentUserConfigName; if (PackageManager.G.g == null) { EditorWindow.GetWindow <PackageManager.Editor.PackageManagerWindow>(); PackageManager.G.g.OnChangeConfigList += Action_OnChangeConfigList; } else { EditorWindow.GetWindow <PackageManager.Editor.PackageManagerWindow>(); } return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndToggleGroup(); GUILayout.Space(10); EditorGUILayout.LabelField("Client Version:", labelOptions); string packageVersion_new = EditorGUILayout.TextField(G.Module.PackageManagerModule.ModuleStateConfig.Json.ClientVersion, inputOptions); if (G.Module.PackageManagerModule.ModuleStateConfig.Json.ClientVersion != packageVersion_new) { G.Module.PackageManagerModule.ModuleStateConfig.Json.ClientVersion = packageVersion_new; } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); //BuildPlayer EditorGUILayout.BeginHorizontal(); FrontIndicator(currentStep == Step.BuildPlayer || currentStep == Step.Prepare, G.Module.PlayerBuilderModule.ModuleStateConfig.Json.Applying, G.Module.PlayerBuilderModule.ModuleStateConfig.Json.ErrorMessage); G.Module.PlayerBuilderModule.ModuleStateConfig.Json.IsPartOfPipeline = EditorGUILayout.BeginToggleGroup( playerBuilderContent, G.Module.PlayerBuilderModule.ModuleStateConfig.Json.IsPartOfPipeline); EditorGUILayout.BeginHorizontal(); if (creatingNewConfig) { ShowInputField(); } else { if (ShowBuildSettingDropdown()) { return; } } if (GUILayout.Button(new GUIContent(EditorGUIUtility.FindTexture("ViewToolOrbit"), "查看该文件"), miniButtonOptions)) { ClickedShowConfigFile(); return; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndToggleGroup(); GUILayout.Space(10); EditorGUILayout.LabelField("Build Number:", labelOptions); int buildNum = EditorGUILayout.IntField(G.Module.PlayerBuilderModule.ModuleStateConfig.Json.BuildNumber, inputOptions); if (G.Module.PlayerBuilderModule.ModuleStateConfig.Json.BuildNumber != buildNum) { G.Module.PlayerBuilderModule.ModuleStateConfig.Json.BuildNumber = buildNum; } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(30); if (GUILayout.Button(new GUIContent("New", "新建配置文件"), buttonOptions)) { ClickedNew(); return; } if (GUILayout.Button(new GUIContent("Save", "保存配置文件"), buttonOptions)) { ClickedSave(); return; } if (GUILayout.Button(new GUIContent("Revert", "重新载入配置文件"), buttonOptions)) { ClickedRevert(); return; } if (GUILayout.Button(new GUIContent("Apply", "应用下面的PlayerSettings(不包括宏定义)"), buttonOptions)) { ClickedApply(); return; } if (GUILayout.Button(new GUIContent("Fetch", "获取当前的PlayerSettings"), buttonOptions)) { FetchSettings(); return; } if (GUILayout.Button(new GUIContent("CopyDir", "自动拷贝目录并设置宏定义"), buttonOptions)) { if (PlayerBuilder.Editor.PlayerSettingsPanel.CopyNow(EditorUserBuildSettings.activeBuildTarget)) { G.Module.PlayerBuilderRunner.ApplyScriptDefines(EditorUserBuildSettings.activeBuildTarget); ToLuaMenu.ClearLuaWraps(); } return; } if (GUILayout.Button(new GUIContent("RevertDir", "自动恢复拷贝目录并恢复宏定义"), buttonOptions)) { if (PlayerBuilder.Editor.PlayerSettingsPanel.RevertNow()) { G.Module.PlayerBuilderRunner.ApplyScriptDefines(EditorUserBuildSettings.activeBuildTarget, true); ToLuaMenu.ClearLuaWraps(); } return; } GUILayout.FlexibleSpace(); //Run Button Color defaultColor = GUI.contentColor; GUI.contentColor = Color.green; if (PlayerBuilder.G.Module.StateConfigAvailable) { if (GUILayout.Button(new GUIContent("Run Pipeline"))) { ClickedRunPipeline(); return; } } else { if (GUILayout.Button(new GUIContent("Check", "检查所有勾选的模块配置"))) { ClickedCheckAll(); return; } } GUI.contentColor = defaultColor; EditorGUILayout.EndHorizontal(); EditorGUILayout.EndScrollView(); }