ビルドボタンを押した時の動作を変更する

ビルドの前処理や後処理のためにビルド専用メニューを用意するとエディタ内臓のプロジェクトビルドボタンと動作が違ったりして不便になりますが、ビルドボタンを押したときの動作は変更できるようになっていたりします。

UnityEditor.BuildPlayerWindow がエディタ上で使用されているBuild Settingsウインドウになります。このクラスが持っている RegisterBuildPlayerHandler を使うとビルドボタンのイベントハンドラーを指定したものに置き換えることが可能で、下はビルドボタンを押すとログが出るサンプルです。

using UnityEditor;

static class BuildExtension
{
    [InitializeOnLoadMethod]
    static void OnLoad()
    {
        BuildPlayerWindow.RegisterBuildPlayerHandler(OnBuildPlayer);
    }

    static void OnBuildPlayer(BuildPlayerOptions options)
    {
        Debug.Log("BUILD");
    }
}

置き換えたイベントハンドラーから従来のビルド処理を実行するには下の様にします。

static void OnBuildPlayer(BuildPlayerOptions options)
{
    BuildPlayerWindow.DefaultBuildMethods.BuildPlayer(options);
}

ScriptableBuildPipelineもこのあたり対応するのかな?