private void ShowBuildTargetSettings()
{
BuildTarget selectedStandaloneTarget;
Dictionary<GUIContent, BuildTarget> architecturesForPlatform;
GUIContent[] contentArray;
int num4;
EditorGUIUtility.labelWidth = Mathf.Min((float) 180f, (float) ((base.position.width - 265f) * 0.47f));
BuildTarget target = CalculateSelectedBuildTarget();
BuildPlatform platform = s_BuildPlatforms.BuildPlatformFromTargetGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
bool flag = BuildPipeline.LicenseCheck(target);
GUILayout.Space(18f);
Rect position = GUILayoutUtility.GetRect((float) 50f, (float) 36f);
position.x++;
GUI.Label(new Rect(position.x + 3f, position.y + 3f, 32f, 32f), platform.title.image, GUIStyle.none);
GUI.Toggle(position, false, platform.title.text, styles.platformSelector);
GUILayout.Space(10f);
if (((platform.targetGroup == BuildTargetGroup.WebGL) && !BuildPipeline.IsBuildTargetSupported(target)) && (IntPtr.Size == 4))
{
GUILayout.Label("Building for WebGL requires a 64-bit Unity editor.", new GUILayoutOption[0]);
GUIBuildButtons(false, false, false, platform);
return;
}
if (((flag && !string.IsNullOrEmpty(ModuleManager.GetTargetStringFromBuildTarget(target))) && (ModuleManager.GetBuildPostProcessor(target) == null)) && ((EditorUserBuildSettings.selectedBuildTargetGroup != BuildTargetGroup.Standalone) || !IsAnyStandaloneModuleLoaded()))
{
GUILayout.Label("No " + s_BuildPlatforms.GetBuildTargetDisplayName(target) + " module loaded.", new GUILayoutOption[0]);
GUILayoutOption[] options = new GUILayoutOption[] { GUILayout.ExpandWidth(false) };
if (GUILayout.Button("Module Manager", EditorStyles.miniButton, options))
{
InternalEditorUtility.ShowPackageManagerWindow();
}
GUIBuildButtons(false, false, false, platform);
return;
}
if (Application.HasProLicense() && !InternalEditorUtility.HasAdvancedLicenseOnBuildTarget(target))
{
string text = string.Format("{0} is not included in your Unity Pro license. Your {0} build will include a Unity Personal Edition splash screen.\n\nYou must be eligible to use Unity Personal Edition to use this build option. Please refer to our EULA for further information.", s_BuildPlatforms.GetBuildTargetDisplayName(target));
GUILayout.BeginVertical(EditorStyles.helpBox, new GUILayoutOption[0]);
GUILayout.Label(text, EditorStyles.wordWrappedMiniLabel, new GUILayoutOption[0]);
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
if (GUILayout.Button("EULA", EditorStyles.miniButton, new GUILayoutOption[0]))
{
Application.OpenURL("http://unity3d.com/legal/eula");
}
if (GUILayout.Button(string.Format("Add {0} to your Unity Pro license", s_BuildPlatforms.GetBuildTargetDisplayName(target)), EditorStyles.miniButton, new GUILayoutOption[0]))
{
Application.OpenURL("http://unity3d.com/get-unity");
}
GUILayout.EndHorizontal();
GUILayout.EndVertical();
}
GUIContent downloadErrorForTarget = styles.GetDownloadErrorForTarget(target);
if (downloadErrorForTarget != null)
{
GUILayout.Label(downloadErrorForTarget, EditorStyles.wordWrappedLabel, new GUILayoutOption[0]);
GUIBuildButtons(false, false, false, platform);
return;
}
if (!flag)
{
int num = s_BuildPlatforms.BuildPlatformIndexFromTargetGroup(platform.targetGroup);
GUILayout.Label(styles.notLicensedMessages[num, 0], EditorStyles.wordWrappedLabel, new GUILayoutOption[0]);
GUILayout.Space(5f);
GUILayout.BeginHorizontal(new GUILayoutOption[0]);
GUILayout.FlexibleSpace();
if ((styles.notLicensedMessages[num, 1].text.Length != 0) && GUILayout.Button(styles.notLicensedMessages[num, 1], new GUILayoutOption[0]))
{
Application.OpenURL(styles.notLicensedMessages[num, 2].text);
}
GUILayout.EndHorizontal();
GUIBuildButtons(false, false, false, platform);
return;
}
IBuildWindowExtension buildWindowExtension = ModuleManager.GetBuildWindowExtension(ModuleManager.GetTargetStringFromBuildTargetGroup(platform.targetGroup));
if (buildWindowExtension != null)
{
buildWindowExtension.ShowPlatformBuildOptions();
}
GUI.changed = false;
switch (platform.targetGroup)
{
case BuildTargetGroup.Standalone:
{
BuildTarget bestStandaloneTarget = GetBestStandaloneTarget(EditorUserBuildSettings.selectedStandaloneTarget);
selectedStandaloneTarget = EditorUserBuildSettings.selectedStandaloneTarget;
int selectedIndex = Math.Max(0, Array.IndexOf<BuildTarget>(s_BuildPlatforms.standaloneSubtargets, BuildPlatforms.DefaultTargetForPlatform(bestStandaloneTarget)));
int index = EditorGUILayout.Popup(styles.standaloneTarget, selectedIndex, s_BuildPlatforms.standaloneSubtargetStrings, new GUILayoutOption[0]);
if (index != selectedIndex)
{
selectedStandaloneTarget = s_BuildPlatforms.standaloneSubtargets[index];
goto Label_0523;
}
architecturesForPlatform = BuildPlatforms.GetArchitecturesForPlatform(bestStandaloneTarget);
if (architecturesForPlatform == null)
{
goto Label_0523;
}
contentArray = new List<GUIContent>(architecturesForPlatform.Keys).ToArray();
num4 = 0;
if (index == selectedIndex)
{
foreach (KeyValuePair<GUIContent, BuildTarget> pair in architecturesForPlatform)
{
if (((BuildTarget) pair.Value) == bestStandaloneTarget)
{
num4 = Math.Max(0, Array.IndexOf<GUIContent>(contentArray, pair.Key));
break;
}
}
}
break;
}
case BuildTargetGroup.WebPlayer:
{
GUI.enabled = BuildPipeline.LicenseCheck(BuildTarget.WebPlayerStreamed);
bool flag2 = EditorGUILayout.Toggle(styles.webPlayerStreamed, EditorUserBuildSettings.webPlayerStreamed, new GUILayoutOption[0]);
if (GUI.changed)
{
EditorUserBuildSettings.webPlayerStreamed = flag2;
}
EditorUserBuildSettings.webPlayerOfflineDeployment = EditorGUILayout.Toggle(styles.webPlayerOfflineDeployment, EditorUserBuildSettings.webPlayerOfflineDeployment, new GUILayoutOption[0]);
goto Label_056E;
}
case BuildTargetGroup.iPhone:
if (Application.platform == RuntimePlatform.OSXEditor)
{
EditorUserBuildSettings.symlinkLibraries = EditorGUILayout.Toggle(styles.symlinkiOSLibraries, EditorUserBuildSettings.symlinkLibraries, new GUILayoutOption[0]);
}
goto Label_056E;
default:
goto Label_056E;
}
num4 = EditorGUILayout.Popup(styles.architecture, num4, contentArray, new GUILayoutOption[0]);
selectedStandaloneTarget = architecturesForPlatform[contentArray[num4]];
Label_0523:
if (selectedStandaloneTarget != EditorUserBuildSettings.selectedStandaloneTarget)
{
EditorUserBuildSettings.selectedStandaloneTarget = selectedStandaloneTarget;
GUIUtility.ExitGUI();
}
Label_056E:
GUI.enabled = true;
bool enableBuildButton = (buildWindowExtension == null) || buildWindowExtension.EnabledBuildButton();
bool enableBuildAndRunButton = false;
bool flag5 = (buildWindowExtension == null) || buildWindowExtension.ShouldDrawScriptDebuggingCheckbox();
bool flag6 = (buildWindowExtension != null) && buildWindowExtension.ShouldDrawExplicitNullCheckbox();
bool flag7 = (buildWindowExtension == null) || buildWindowExtension.ShouldDrawDevelopmentPlayerCheckbox();
bool flag8 = ((target == BuildTarget.StandaloneLinux) || (target == BuildTarget.StandaloneLinux64)) || (target == BuildTarget.StandaloneLinuxUniversal);
IBuildPostprocessor buildPostProcessor = ModuleManager.GetBuildPostProcessor(target);
bool flag9 = (buildPostProcessor != null) && buildPostProcessor.SupportsScriptsOnlyBuild();
bool canInstallInBuildFolder = false;
if (BuildPipeline.IsBuildTargetSupported(target))
{
bool flag11 = (buildWindowExtension == null) || buildWindowExtension.ShouldDrawProfilerCheckbox();
GUI.enabled = flag7;
if (flag7)
{
EditorUserBuildSettings.development = EditorGUILayout.Toggle(styles.debugBuild, EditorUserBuildSettings.development, new GUILayoutOption[0]);
}
bool development = EditorUserBuildSettings.development;
GUI.enabled = development;
GUI.enabled = GUI.enabled && (platform.targetGroup != BuildTargetGroup.WebPlayer);
if (flag11)
{
if (!GUI.enabled)
{
if (!development)
{
styles.profileBuild.tooltip = "Profiling only enabled in Development Player";
}
else if (platform.targetGroup == BuildTargetGroup.WebPlayer)
{
styles.profileBuild.tooltip = "Autoconnect not available from webplayer. Manually connect in Profiler";
}
}
else
{
styles.profileBuild.tooltip = string.Empty;
}
EditorUserBuildSettings.connectProfiler = EditorGUILayout.Toggle(styles.profileBuild, EditorUserBuildSettings.connectProfiler, new GUILayoutOption[0]);
}
GUI.enabled = development;
if (flag5)
{
EditorUserBuildSettings.allowDebugging = EditorGUILayout.Toggle(styles.allowDebugging, EditorUserBuildSettings.allowDebugging, new GUILayoutOption[0]);
}
if (flag6)
{
GUI.enabled = !development;
if (!GUI.enabled)
{
EditorUserBuildSettings.explicitNullChecks = true;
}
EditorUserBuildSettings.explicitNullChecks = EditorGUILayout.Toggle(styles.explicitNullChecks, EditorUserBuildSettings.explicitNullChecks, new GUILayoutOption[0]);
GUI.enabled = development;
}
if (flag9)
{
EditorUserBuildSettings.buildScriptsOnly = EditorGUILayout.Toggle(styles.buildScriptsOnly, EditorUserBuildSettings.buildScriptsOnly, new GUILayoutOption[0]);
}
GUI.enabled = !development;
if (flag8)
{
EditorUserBuildSettings.enableHeadlessMode = EditorGUILayout.Toggle(styles.enableHeadlessMode, EditorUserBuildSettings.enableHeadlessMode && !development, new GUILayoutOption[0]);
}
GUI.enabled = true;
GUILayout.FlexibleSpace();
canInstallInBuildFolder = Unsupported.IsDeveloperBuild() && PostprocessBuildPlayer.SupportsInstallInBuildFolder(target);
if (enableBuildButton)
{
enableBuildAndRunButton = (buildWindowExtension == null) ? !EditorUserBuildSettings.installInBuildFolder : (buildWindowExtension.EnabledBuildAndRunButton() && !EditorUserBuildSettings.installInBuildFolder);
}
}
else
{
GUILayoutOption[] optionArray2 = new GUILayoutOption[] { GUILayout.ExpandWidth(true) };
GUILayout.BeginHorizontal(optionArray2);
GUILayoutOption[] optionArray3 = new GUILayoutOption[] { GUILayout.ExpandWidth(true) };
GUILayout.BeginVertical(optionArray3);
int num5 = s_BuildPlatforms.BuildPlatformIndexFromTargetGroup(platform.targetGroup);
GUILayout.Label(styles.GetTargetNotInstalled(num5, 0), new GUILayoutOption[0]);
if ((styles.GetTargetNotInstalled(num5, 1) != null) && GUILayout.Button(styles.GetTargetNotInstalled(num5, 1), new GUILayoutOption[0]))
{
Application.OpenURL(styles.GetTargetNotInstalled(num5, 2).text);
}
GUILayout.EndVertical();
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
}
GUIBuildButtons(buildWindowExtension, enableBuildButton, enableBuildAndRunButton, canInstallInBuildFolder, platform);
}