You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.6 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Build;
using UnityEngine;
public static class BuildScript
{
private static readonly string[] Scenes = { "Assets/Scenes/SampleScene.unity" };
[MenuItem("Build/Build All (Development)")]
public static void DoBuild()
{
DoBuild(BuildOptions.Development | BuildOptions.AllowDebugging);
}
private static void DoBuild(BuildOptions buildOptions)
{
DoBuild("XboxOne", BuildTarget.GameCoreXboxOne, buildOptions);
DoBuild("XboxSeries", BuildTarget.GameCoreXboxSeries, buildOptions);
//DoBuild("PS4/EpicVoiceTest", BuildTarget.PS4, buildOptions); // PS4 doesn't feature C++ source code plugin support, so just ignore for now
DoBuild("PS5/EpicVoiceTest", BuildTarget.PS5, buildOptions);
DoBuild("Windows/EpicVoiceTest.exe", BuildTarget.StandaloneWindows64, buildOptions);
}
private static void DoBuild(string name, BuildTarget buildTarget, BuildOptions buildOptions)
{
var buildTargetGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);
EditorUserBuildSettings.SwitchActiveBuildTarget(buildTargetGroup, buildTarget);
var report = BuildPipeline.BuildPlayer(Scenes, $"Build/{name}", buildTarget, buildOptions);
if (report.summary.totalErrors > 0)
{
throw new Exception($"{buildTarget} build had errors");
}
Debug.Log($"{buildTarget} build completed successfully at {DateTime.Now:HH:mm:ss}, duration: {report.summary.totalTime.TotalSeconds:0.0} seconds");
}
}