Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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();
        }