84 lines
2.7 KiB
C#
84 lines
2.7 KiB
C#
using System.Diagnostics;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using Debug = UnityEngine.Debug;
|
|
|
|
public static class BuildingUtils
|
|
{
|
|
[MenuItem("Tools/Build/Steam/Release")]
|
|
public static void SteamRelease()
|
|
{
|
|
IncreaseBuildNumber();
|
|
BuildRelease();
|
|
UploadSteam();
|
|
}
|
|
|
|
[MenuItem("Tools/Build/Steam/Development")]
|
|
public static void SteamDevelopment()
|
|
{
|
|
IncreaseBuildNumber();
|
|
BuildDevelopment();
|
|
UploadSteam();
|
|
}
|
|
|
|
|
|
[MenuItem("Tools/Build/All Release")]
|
|
public static void BuildRelease()
|
|
{
|
|
BuildWindowsRelease();
|
|
}
|
|
|
|
[MenuItem("Tools/Build/All Development")]
|
|
public static void BuildDevelopment()
|
|
{
|
|
BuildWindowsDevelopment();
|
|
}
|
|
|
|
[MenuItem("Tools/Build/Platform/Windows/x64-Development")]
|
|
public static void BuildWindowsDevelopment() => BuildWindows(false);
|
|
|
|
[MenuItem("Tools/Build/Platform/Windows/x64-Release")]
|
|
public static void BuildWindowsRelease() => BuildWindows(true);
|
|
|
|
|
|
private static void BuildWindows(bool release)
|
|
{
|
|
var buildPlayerOptions = new BuildPlayerOptions { scenes = new string[EditorBuildSettings.scenes.Length] };
|
|
for (int i = 0; i < EditorBuildSettings.scenes.Length; i++)
|
|
{
|
|
buildPlayerOptions.scenes[i] = EditorBuildSettings.scenes[i].path;
|
|
}
|
|
|
|
buildPlayerOptions.target = BuildTarget.StandaloneWindows64;
|
|
buildPlayerOptions.options = release ? BuildOptions.None : BuildOptions.Development;
|
|
buildPlayerOptions.locationPathName = Application.dataPath +
|
|
$"/../../{Application.productName}-Steam/ContentBuilder/content/windows/{Application.productName}.exe";
|
|
BuildPipeline.BuildPlayer(buildPlayerOptions);
|
|
}
|
|
|
|
private static void IncreaseBuildNumber()
|
|
{
|
|
string[] versionParts = PlayerSettings.bundleVersion.Split('.');
|
|
if (versionParts.Length != 3 || !int.TryParse(versionParts[2], out int version)) {
|
|
Debug.LogError("IncreaseBuildNumber failed to update version " + PlayerSettings.bundleVersion);
|
|
return;
|
|
}
|
|
versionParts[2] = (version + 1).ToString();
|
|
PlayerSettings.bundleVersion = string.Join(".", versionParts);
|
|
}
|
|
|
|
private static void UploadSteam()
|
|
{
|
|
string command = $"cd {Application.dataPath}/../../{Application.productName}-Steam/ContentBuilder && run_build.bat";
|
|
|
|
var processInfo = new ProcessStartInfo("cmd.exe", $"/c {command}")
|
|
{
|
|
CreateNoWindow = true,
|
|
UseShellExecute = false
|
|
};
|
|
var process = Process.Start(processInfo);
|
|
process.WaitForExit();
|
|
Debug.Log(process.ExitCode);
|
|
process.Close();
|
|
}
|
|
} |