Unityをコマンドラインでビルドするためのバッチファイルの内容を忘れないようにメモ!!

いつも、Unityをコマンドラインでビルドする方法を忘れてしまうので、備忘録的にメモしておいた!!
つまり、バッチファイルから、エディタ拡張スクリプト内の「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
        {
            // ビルド失敗処理
        }
    }
}
© 2022 Husky Studios (タロ三世商会), All rights reserved.