つまり、バッチファイルから、エディタ拡張スクリプト内の「Build()」関数を呼び出している感じです。
ビルドのプラットフォームは「WebGL」にしています。
バッチファイル側(autobuild.batファイル)
rem このバッチファイルの相対パスへ移動
pushd "%~dp0"
"C:\Program Files\Unity\Hub\Editor\2019.4.16f1\Editor\Unity.exe" ^
-batchmode -quit -logFile log.txt ^
-buildTarget WebGL ^
-projectPath UnityProject ^
-executeMethod CommandLineFunc.Build ^
-outputPath WebBuild ^
rem -development
rem このバッチの相対パスから撤収
popd
Unityプロジェクト内のエディタ拡張のスクリプト内(CommandLineFunc.cs)
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using System.IO;
using System;
public class CommandLineFunc
{
/// <summary>
/// ビルド実行
/// </summary>
public static void Build()
{
var output = "";
bool isDevelopment = false;
var args = System.Environment.GetCommandLineArgs();
for (int i = 0; i < args.Length; i++)
{
switch (args[i])
{
case "-outputPath":
output = args[i + 1]; //出力先の設定
break;
case "-development":
isDevelopment = true; //Developmentビルドにする
break;
default:
break;
}
}
var option = new BuildPlayerOptions();
option.locationPathName = output;
if(isDevelopment)
{
//optionsはビットフラグなので、|で追加していくことができる
option.options = BuildOptions.Development | BuildOptions.AllowDebugging;
}
option.target = BuildTarget.WebGL; //ビルドターゲットを設定. 今回はWebGL
var result = BuildPipeline.BuildPlayer(option);
if(result.summary.result == UnityEditor.Build.Reporting.BuildResult.Succeeded)
{
// ビルド成功処理
}
else
{
// ビルド失敗処理
}
}
}