Unityでビルドの前後に処理を挟み込む方法についてまとめました。
Unity2020.1.10
ビルド前後の処理を行う
ビルド前後の処理を行うにはIPreprocessBuildWithReport
やIPostprocessBuildWithReport
を実装したクラスを作ります。
using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; public class Example : IPreprocessBuildWithReport, IPostprocessBuildWithReport { // この値が小さいものほど早く処理される public int callbackOrder => 1; public void OnPreprocessBuild(BuildReport report) { Debug.Log("ビルドを開始します。"); } public void OnPostprocessBuild(BuildReport report) { Debug.Log("ビルドが完了しました。"); } }
ちなみにIPreprocessBuild
やIPostprocessBuild
といったインターフェースもありますがこれらはObsoleteです。
ビルドボタンを押したときの処理を行う
また、BuildPlayerWindow.RegisterBuildPlayerHandler
を使うとBuild Settingsウィンドウからのビルドボタンの押下をフックすることができます。
using UnityEditor; using UnityEngine; public class Example { [InitializeOnLoadMethod] private static void Initialize() { // ビルドボタンの押下をフック BuildPlayerWindow.RegisterBuildPlayerHandler(BuildPlayerHandler); } private static void BuildPlayerHandler(BuildPlayerOptions options) { Debug.Log("ビルドボタンが押されました。"); } }