コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】エディタ拡張でビルドに失敗した時にも呼び出されるコールバックを実装する方法

概要

using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEngine;

public class Test : IPreprocessBuildWithReport
{
    public int callbackOrder => 0;

    public void OnPreprocessBuild( BuildReport report )
    {
        void OnUpdate()
        {
            if ( BuildPipeline.isBuildingPlayer ) return;

            EditorApplication.update -= OnUpdate;

            Debug.Log( "ビルド終了" );
        }

        EditorApplication.update += OnUpdate;

        Debug.Log( "ビルド開始" );
    }
}
  • IPostprocessBuildWithReport.OnPostprocessBuild はビルド成功時しか呼び出されない
  • 上記のようなコードを記述することで、ビルド失敗時にもコールバックが呼び出される