public static void BuildPlayer(bool run = false) { //Just in case, we save the settings BuildSettings.Save(); string path = EditorUtility.SaveFolderPanel("Choose Location of Built Game", EditorUserBuildSettings.GetBuildLocation(BuildTarget.WebGL), ""); if (Directory.Exists(path)) { ProgressHelper progress = new ProgressHelper(); progress.Reset(5); //Set Template string lastUsedTemplate = TemplateManager.SetChromeTemplate("PROJECT:ChromeApp"); //Define symbols Builder.SetDefineSymbol(true); //Create subfolder path = Builder.CreateSubFolder(path); progress.SetCleanupCallback(() => { //Clean up //Reset Webgl template TemplateManager.SetChromeTemplate(lastUsedTemplate); //Define symbols Builder.SetDefineSymbol(false); }); //BUILD if (!Builder.BuildPlayer(path)) { progress.Done(); return; } //Process template progress.Step("Building Player - Chrome App", "Postprocessing Template Variables"); TemplateManager.ProcessTemplateFiles(path); //Creatig Icons progress.Step("Building Player - Chrome App", "Creating icons"); Icons.CreateIcons(path); //Creating Manifest progress.Step("Building Player - Chrome App", "Creating manifest"); Manifest.CreateManifestFile(path); //Packing Extention progress.Step("Building Player - Chrome App", "Packing Extension into .crx file"); if (BuildSettings.Get.packExtension) { if (!ChromeHelper.PackExtension(path)) { Debug.LogWarning("Chrome app was not packed into a .crx file."); } } //launch player or reveal in explorer progress.Step("Building Player - Chrome App", "Launching"); if (run) { if (File.Exists(path + ".crx")) { CrxHeader header = new CrxHeader(path + ".crx"); Manifest.AddKeyToManifest(Path.Combine(path, "manifest.json"), header.PublicKey); } ChromeHelper.LoadAndRunExtension(path); } else { EditorUtility.RevealInFinder(path); } //Clear progress and cleanup progress.Done(); } }
private void OnDisable() { BuildSettings.Save(); }