using System.IO; using UnityEditor; using UnityEditor.Build.Reporting; using UnityEngine; namespace Luneraria.EditorTools { /// /// Player builds (U2D). Only macOS is possible on this machine; Windows and Linux need the build /// modules listed in docs/port/U1.5-UNITY.md. Output goes to Builds/ (ignored by git). /// Unity -batchmode -projectPath . -executeMethod Luneraria.EditorTools.LunePlayerBuild.BuildMac -logFile - /// public static class LunePlayerBuild { public static void BuildMac() { string path = Path.Combine(Path.GetDirectoryName(Application.dataPath), "Builds/macOS/Luneraria.app"); // CPU and GPU frame timings for the benchmark (FrameTimingManager). PlayerSettings.enableFrameTimingStats = true; var options = new BuildPlayerOptions { scenes = new[] { LuneWorldBuilder.ScenePath }, locationPathName = path, target = BuildTarget.StandaloneOSX, options = BuildOptions.None, }; BuildReport report = BuildPipeline.BuildPlayer(options); Debug.Log(string.Format("LUNE_BUILD {0}: {1}, {2:0.0} MB, {3:0.0} s", report.summary.result, path, report.summary.totalSize / 1048576.0, report.summary.totalTime.TotalSeconds)); EditorApplication.Exit(report.summary.result == BuildResult.Succeeded ? 0 : 1); } } }