private void DrawConfig(BuildConfig config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } var targetSupported = BuildUtil.IsTargetSupported(config.target); if (!targetSupported && config.target != 0) { var message = string.Format( "Build module for {0} is not installed!", config.target ); EditorGUILayout.HelpBox(message, MessageType.Warning); } GUI.enabled = targetSupported; if (GUILayout.Button(new GUIContent("Build"))) { EditorApplication.delayCall += () => BuildUtil.Build((BuildConfig)list.list[list.index]); } GUI.enabled = true; config.folder = EditorGUILayout.TextField("Folder", config.folder); EditorGUILayout.Space(); config.target = (BuildTarget)EditorGUILayout.EnumPopup("Target Platform", config.target); EditorGUILayout.BeginHorizontal(); switch (config.target) { // Web builds do not have an exe name; Unity will always use the // name index.html case BuildTarget.WebGL: GUI.enabled = false; EditorGUILayout.TextField("Exe Name", "index"); GUILayout.Label(".html", GUILayout.Width(50)); GUI.enabled = true; break; default: config.exeName = EditorGUILayout.TextField("Exe Name", config.exeName); GUILayout.Label( BuildUtil.GetExeFiletype(config.target), GUILayout.Width(50) ); break; } EditorGUILayout.EndHorizontal(); config.defaultBuild = EditorGUILayout.Toggle("Default Build", config.defaultBuild); options = EditorGUILayout.Foldout(options, "Build Options"); if (options) { DrawBuildOptions(config); } }
public static void BuildDefaults() { var configs = BuildUtil.LoadSettings(); foreach (var config in configs) { if (config.defaultBuild) { BuildUtil.Build(config); } } }