public bool drawInspector() { ErrorReporter errorReporter = new ErrorReporter(); // ------------------- // Product parameters // ------------------- ProductParametersRenderer productParametersRenderer = new ProductParametersRenderer(m_advancedBuilder.getProductParameters()); productParametersRenderer.checkWarningsAndErrors(errorReporter); if (GUIUtils.DrawHeader("Product Parameters", "ab_product_parameters")) { GUIUtils.BeginContents(); productParametersRenderer.drawInspector(); GUIUtils.EndContents(); } // -------------- // Release Types // -------------- ReleaseTypesRenderer releaseTypesRenderer = new ReleaseTypesRenderer(m_advancedBuilder.getReleaseTypes()); releaseTypesRenderer.checkWarningsAndErrors(errorReporter); if (GUIUtils.DrawHeader("Release Types", "ab_release_types")) { GUIUtils.BeginContents(); releaseTypesRenderer.drawInspector(); GUIUtils.EndContents(); } // ---------- // Platforms // ---------- PlatformsRenderer platformsRenderer = new PlatformsRenderer(m_advancedBuilder.getPlatforms()); platformsRenderer.checkWarningsAndErrors(errorReporter); if (GUIUtils.DrawHeader("Platforms", "ab_platforms")) { GUIUtils.BeginContents(); platformsRenderer.drawInspector(); GUIUtils.EndContents(); } // ------------------ // Advanced Settings // ------------------ AdvancedSettingsRenderer advancedSettingsRenderer = new AdvancedSettingsRenderer(m_advancedBuilder.getAdvancedSettings()); advancedSettingsRenderer.checkWarningsAndErrors(errorReporter); if (GUIUtils.DrawHeader("Advanced Settings", "ab_advanced_settings")) { GUIUtils.BeginContents(); advancedSettingsRenderer.drawInspector(); GUIUtils.EndContents(); } // ------------------ // App Configuration // ------------------ ProjectConfigurationsRenderer projectConfigurationsRenderer = new ProjectConfigurationsRenderer(m_advancedBuilder, m_advancedBuilder.getProjectConfigurations()); projectConfigurationsRenderer.checkWarningsAndErrors(errorReporter); if (GUIUtils.DrawHeader("Project Configurations", "ab_project_configurations")) { GUIUtils.BeginContents(); bool wasBuildProcessLaunched = projectConfigurationsRenderer.drawInspector(platformsRenderer, errorReporter); if (wasBuildProcessLaunched) { return true; } GUIUtils.EndContents(); } // ------------------ // Perform Build // ------------------ if (GUIUtils.DrawHeader("Perform Build", "ab_perform_build", true)) { GUIUtils.BeginContents(); { if (errorReporter.getWarningCount() > 0 || errorReporter.getErrorCount() > 0) { foreach (string iMessage in errorReporter.getErrorList()) { EditorGUILayout.HelpBox(iMessage, MessageType.Error, true); } foreach (string iMessage in errorReporter.getWarningList()) { EditorGUILayout.HelpBox(iMessage, MessageType.Warning, true); } } bool isBuildAllowed = m_advancedBuilder.getProjectConfigurations().getTotalBuildCount() != 0 && errorReporter.getErrorCount() <= 0; /* * Perform the build */ GUI.enabled = isBuildAllowed; if (GUIUtils.DrawBigButton("Perform a total of " + m_advancedBuilder.getProjectConfigurations().getTotalBuildCount() + " builds", Color.green)) { if (m_advancedBuilder.getProjectConfigurations().getTotalAutoRunBuildCount() > 3) { if (EditorUtility.DisplayDialog("Launch build?", "You have selected the 'Autorun Build' option and you are making multiple builds, are you sure you want to continue?", "Yes", "Cancel")) { AdvancedBuilder.PerformBuild(); } } else { AdvancedBuilder.PerformBuild(); } return true; } GUI.enabled = true; /* * Button to open build folder */ if (GUIUtils.DrawBigButton("Open Build folder")) { string buildFolderPath = Application.dataPath.Replace("Assets", "Builds"); if (!Directory.Exists(buildFolderPath)) { Directory.CreateDirectory(buildFolderPath); } EditorUtility.OpenWithDefaultApp(buildFolderPath); } GUILayout.Space(5f); } GUIUtils.EndContents(); } return false; }
private bool drawConfigurationDetail(PlatformsRenderer platformsRenderer, ErrorReporter errorReporter) { if (m_projectConfigurations.selectedConfigurationIndex >= m_projectConfigurations.configurationList.Count) { m_projectConfigurations.selectedConfigurationIndex = -1; return false; } Configuration configuration = m_projectConfigurations.configurationList[m_projectConfigurations.selectedConfigurationIndex]; if (GUIUtils.DrawHeader("Configuration information", true)) { GUIUtils.BeginContents(); GUILayout.BeginHorizontal(); { GUILayout.BeginVertical(); { configuration.name = EditorGUILayout.TextField("Name:", configuration.name); EditorGUILayout.LabelField("Default Defines:", configuration.getDefines()); configuration.customDefines = EditorGUILayout.TextField("Custom Defines:", configuration.customDefines); if (configuration.platformType == PlatformType.WindowsStore) { if (PlatformWindowsStore.IsUniversal(configuration.platformArchitecture.name)) { configuration.wsaBuildAndRunDeployTarget = (WSABuildAndRunDeployTarget)EditorGUILayout.EnumPopup("Build and Deploy Target", configuration.wsaBuildAndRunDeployTarget); } } /*if (configuration.platformType == PlatformType.Android) { configuration.appendProject = EditorGUILayout.ToggleLeft(new GUIContent("Append project", "(Used when building Eclipse project) This setting will create a new Eclipse project. Existing Eclipse project setting changes will be discarded."), configuration.appendProject); } else */if (configuration.platformType == PlatformType.iOS) { configuration.appendProject = EditorGUILayout.ToggleLeft(new GUIContent("Append project", "This setting will append an existing Xcode project. Existing Xcode project setting changes will be preserved."), configuration.appendProject); } else if (configuration.platformType == PlatformType.WindowsStore) { configuration.appendProject = EditorGUILayout.ToggleLeft(new GUIContent("Append project", "This setting will append an existing project instead of replacing it."), configuration.appendProject); } configuration.openBuildFolder = EditorGUILayout.ToggleLeft("Open build folder after build", configuration.openBuildFolder); configuration.isDevelopmentBuild = EditorGUILayout.ToggleLeft("Development build", configuration.isDevelopmentBuild); configuration.shouldAutoconnectProfiler = EditorGUILayout.ToggleLeft("Autoconnect Profiler", configuration.shouldAutoconnectProfiler); configuration.allowDebugging = EditorGUILayout.ToggleLeft("Allow script debugging", configuration.allowDebugging); configuration.shouldAutoRunPlayer = EditorGUILayout.ToggleLeft("Autorun Build", configuration.shouldAutoRunPlayer); m_configurationSceneRenderer.drawInspector(configuration); if (GUIUtils.DrawHeader("Build information")) { GUIUtils.BeginContents(); { PlatformRenderer platformRenderer = platformsRenderer.getPlatformRendererFromPlatform(configuration.platform.getPlatformProperties().platformType); platformRenderer.drawBuildSummary(m_advancedBuilder.getAdvancedSettings(), configuration, m_advancedBuilder.getProductParameters().bundleVersion); } GUIUtils.EndContents(); } GUILayout.BeginHorizontal(); { if (GUILayout.Button("Apply this config" + (m_projectConfigurations.isCurrentConfig(configuration) ? " (Current)" : ""))) { configuration.applyConfiguration(); } GUI.enabled = errorReporter.getErrorCount() == 0; if (GUILayout.Button("Build")) { AdvancedBuilder.PerformBuild(configuration); return true; } GUI.enabled = true; } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); } GUILayout.EndHorizontal(); GUIUtils.EndContents(); } return false; }