private void ActiveBuildTargetsGUI()
{
GUILayout.BeginVertical();
GUILayout.BeginVertical(GUILayout.Width(255));
GUILayout.Label(styles.platformTitle, styles.title);
scrollPosition = GUILayout.BeginScrollView(scrollPosition, "OL Box");
// Draw enabled build targets first, then draw disabled build targets
for (int requireEnabled = 0; requireEnabled < 2; requireEnabled++)
{
bool showRequired = requireEnabled == 0;
bool even = false;
foreach (BuildPlatform gt in BuildPlatforms.instance.buildPlatforms)
{
if (IsBuildTargetGroupSupported(gt.targetGroup, gt.defaultTarget) != showRequired)
{
continue;
}
// Some build targets are not publicly available, show them only when they are actually in use
if (!IsBuildTargetGroupSupported(gt.targetGroup, gt.defaultTarget) && !gt.forceShowTarget)
{
continue;
}
// Some build targets are only compatible with specific OS
if (!IsBuildTargetCompatibleWithOS(gt.defaultTarget))
{
continue;
}
ShowOption(gt, gt.title, even ? styles.evenRow : styles.oddRow);
even = !even;
}
GUI.contentColor = Color.white;
}
GUILayout.EndScrollView();
GUILayout.EndVertical();
GUILayout.Space(10);
// Switching build target in the editor
BuildTarget selectedTarget = EditorUserBuildSettingsUtils.CalculateSelectedBuildTarget();
BuildTargetGroup selectedTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
GUILayout.BeginHorizontal();
GUI.enabled = BuildPipeline.IsBuildTargetSupported(selectedTargetGroup, selectedTarget);
if (GUILayout.Button(EditorGUIUtility.TrTextContent("Player Settings..."), GUILayout.Width(Styles.kButtonWidth)))
{
SettingsService.OpenProjectSettings("Project/Player");
}
GUILayout.EndHorizontal();
GUI.enabled = true;
GUILayout.EndVertical();
}