Files
XUniWindowController/Editor/Scripts/UniWindowControllerBatch.cs
2026-06-14 22:49:28 +08:00

68 lines
2.5 KiB
C#

using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
// ReSharper disable UnusedMember.Local
namespace Kirurobo
{
class UniWindowControllerBatch
{
//[MenuItem("Build/Build OSX")]
static void PerformBuild()
{
// コマンドライン引数の最後が出力パスだとする
//string outputPath = System.Environment.GetCommandLineArgs().Last();
// var buildPlayerOptions = new BuildPlayerOptions();
// buildPlayerOptions.scenes = sceneList.ToArray();
// buildPlayerOptions.locationPathName = outputPath;
// buildPlayerOptions.target = BuildTarget.StandaloneOSX;
// buildPlayerOptions.options = BuildOptions.None;
// 事前にエディタから設定したビルド設定を利用
var scenes = EditorBuildSettings.scenes;
var buildTarget = EditorUserBuildSettings.activeBuildTarget;
var locationPath = EditorUserBuildSettings.GetBuildLocation(buildTarget);
// ビルド対象は環境に合わせて上書き
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
buildTarget = BuildTarget.StandaloneOSX;
locationPath = "Builds/macOS/" + Application.productName;
#elif UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
buildTarget = BuildTarget.StandaloneWindows64;
locationPath = "Builds/Win64/" + Application.productName;
#endif
var buildPlayerOptions = new BuildPlayerOptions
{
scenes = EditorBuildSettingsScene.GetActiveSceneList(scenes),
locationPathName = locationPath,
target = buildTarget,
options = BuildOptions.None
};
// // 内容チェック用
// foreach (var scene in buildPlayerOptions.scenes)
// {
// Debug.Log(scene);
// }
// Debug.Log(buildPlayerOptions.locationPathName);
// return;
var report = BuildPipeline.BuildPlayer(buildPlayerOptions);
var summary = report.summary;
if (summary.result == BuildResult.Succeeded)
{
Debug.Log("构建成功");
} else if (summary.result == BuildResult.Failed)
{
Debug.Log("构建失败");
//EditorApplication.Exit(1);
throw new BuildFailedException(report.summary.ToString());
}
}
}
}