public static BuildTemplate CreateAssetAtPath(string path) { BuildTemplate asset = ScriptableObject.CreateInstance <BuildTemplate>(); asset.name = Path.GetFileName(path); AssetDatabase.CreateAsset(asset, path); return(asset); }
void PopulateAssets() { var buildTemplates = AssetDatabase.FindAssets("t:BuildTemplate"); var buildProfiles = AssetDatabase.FindAssets("t:BuildProfile"); var sceneLists = AssetDatabase.FindAssets("t:SceneList"); m_BuildTemplates = new Dictionary <string, List <BuildTemplate> >(); m_BuildProfiles = new List <BuildProfile>(); m_SceneLists = new List <SceneList>(); foreach (var templateGUID in buildTemplates) { string templatePath = AssetDatabase.GUIDToAssetPath(templateGUID); BuildTemplate template = (BuildTemplate)AssetDatabase.LoadAssetAtPath(templatePath, typeof(BuildTemplate)); if (!m_BuildTemplates.ContainsKey(template.Category)) { m_BuildTemplates.Add(template.Category, new List <BuildTemplate>()); } m_BuildTemplates[template.Category].Add(template); } foreach (var profileGUID in buildProfiles) { string profilePath = AssetDatabase.GUIDToAssetPath(profileGUID); BuildProfile profile = (BuildProfile)AssetDatabase.LoadAssetAtPath(profilePath, typeof(BuildProfile)); m_BuildProfiles.Add(profile); } foreach (var sceneListGUID in sceneLists) { string sceneListPath = AssetDatabase.GUIDToAssetPath(sceneListGUID); SceneList sceneList = (SceneList)AssetDatabase.LoadAssetAtPath(sceneListPath, typeof(SceneList)); m_SceneLists.Add(sceneList); } }
public abstract bool OnPostProcess(BuildTemplate template, bool wantRun);
public BuildProcessorException(BuildProcessor p, BuildTemplate t) { processor = p; template = t; }
public override void Action(int instanceId, string pathName, string resourceFile) { BuildTemplate asset = BuildTemplateAssetFactory.CreateAssetAtPath(pathName); ProjectWindowUtil.ShowCreatedAsset(asset); }
void FormatHeaderGUI(BuildTemplate template, BuildReport report = null) { using (new GUILayout.HorizontalScope()) { using (new GUILayout.VerticalScope()) { GUILayout.Label($"{(template.Name == string.Empty ? template.name : template.Name)} {(template.Category == string.Empty ? "" : $"({template.Category})")}", Styles.boldLabelLarge); using (new GUILayout.HorizontalScope()) { if (report != null) { var summary = report.summary; if (summary.result == BuildResult.Succeeded) { GUILayout.Label(Contents.buildSucceeded, GUILayout.Width(32)); } else if (summary.result != BuildResult.Unknown) { GUILayout.Label(Contents.buildFailed, GUILayout.Width(32)); } GUILayout.Label(summary.result.ToString(), Styles.boldLabelLarge); } else { GUILayout.Label(Contents.buildPending, GUILayout.Width(32)); GUILayout.Label("Build not yet started", Styles.boldLabelLarge); } } } GUILayout.FlexibleSpace(); using (new GUILayout.VerticalScope(GUILayout.Width(120))) { using (new GUILayout.HorizontalScope()) { EditorGUI.BeginDisabledGroup(template == null); if (GUILayout.Button("Build", Styles.MiniButtonLeft)) { EnqueueBuildTemplate(template, false); } if (GUILayout.Button("+ Run", Styles.MiniButtonRight, GUILayout.Width(48))) { EnqueueBuildTemplate(template, true); } EditorGUI.EndDisabledGroup(); } if (template.canRunFromEditor && !template.OpenInExplorer) { EditorGUI.BeginDisabledGroup(template == null || !template.foundBuildExecutable); if (GUILayout.Button("Run Last Build", Styles.MiniButton)) { EnqueueAction(() => { template.RunBuild(); m_CurrentLog = $"[{DateTime.Now.ToShortTimeString()}] Started running template: {template.name} ..."; Repaint(); }); } EditorGUI.EndDisabledGroup(); } else { if (GUILayout.Button("Open Output Folder", Styles.MiniButton)) { EnqueueAction(() => { template.RunBuild(); Repaint(); }); } } } }