Edited build script

This commit is contained in:
Sam Vermeir
2025-08-27 11:51:25 +02:00
parent f183063a85
commit 1dada9feb7

View File

@@ -1,18 +1,20 @@
using System.IO;
using UnityEditor;
public static class BuildScript
{
// Helper: use EditorBuildSettings scenes if present, otherwise fall back to your test scene
static string[] ScenesToBuild() =>
EditorBuildSettings.scenes.Length > 0
? EditorBuildSettings.scenes.Where(s => s.enabled).Select(s => s.path).ToArray()
: new[] { "Assets/Scenes/TestScene.unity" };
[MenuItem("Build/Build Windows")]
public static void BuildWindows()
{
string buildPath = "Builds/Windows";
if (!Directory.Exists(buildPath))
Directory.CreateDirectory(buildPath);
var buildPath = "Builds/Windows";
Directory.CreateDirectory(buildPath);
BuildPipeline.BuildPlayer(
new[] { "Assets/Scenes/TestScene.unity" }, // Scenes to build
Path.Combine(buildPath, "TestGame.exe"), // Output path
ScenesToBuild(),
Path.Combine(buildPath, "TestGame.exe"),
BuildTarget.StandaloneWindows64,
BuildOptions.None
);
@@ -21,15 +23,39 @@ public static class BuildScript
[MenuItem("Build/Build Mac")]
public static void BuildMac()
{
string buildPath = "Builds/Mac";
if (!Directory.Exists(buildPath))
Directory.CreateDirectory(buildPath);
var buildPath = "Builds/Mac";
Directory.CreateDirectory(buildPath);
BuildPipeline.BuildPlayer(
new[] { "Assets/Scenes/TestScene.unity" },
ScenesToBuild(),
Path.Combine(buildPath, "TestGame.app"),
BuildTarget.StandaloneOSX,
BuildOptions.None
);
}
// ? New: CI-friendly Android build
public static void BuildAndroidCI()
{
// Make sure we<77>re on the Android target (does nothing if already there)
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android);
// Optional: ensure .apk (set to .aab if you want App Bundle)
var buildDir = "Builds/Android";
Directory.CreateDirectory(buildDir);
var outputPath = Path.Combine(buildDir, "TestGame.apk");
// Optional CI toggles (strip development/build-report etc. if you prefer)
var options = BuildOptions.None;
var report = BuildPipeline.BuildPlayer(
ScenesToBuild(),
outputPath,
BuildTarget.Android,
options
);
if (report.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
throw new System.Exception("Android build failed: " + report.summary.result);
}
}