[unity] Addressable ビルド終了時に処理を実行するには

UnityEditor 実行時、または Addressables ビルド終了時に特定のバッチ処理を行いたい場合、以下のイベントを Assets/Editor/ フォルダに含めましょう。

なお、このイベントは Addressables を使用していなければ使うことができません。
using UnityEditor.AddressableAssets.Build; とあるので当然といえば当然ですが……)

using UnityEditor;
using UnityEditor.AddressableAssets.Build;
using UnityEngine;

[InitializeOnLoad]
public static class OnBuildCompleted
{
    static OnBuildCompleted()
    {
        BuildScript.buildCompleted += OnBuildCompleted;
    }

    static void OnBuildCompleted(AddressableAssetBuildResult result)
    {
        // ここにビルド後の処理を入れる
        Debug.Log(result.OutputPath);
    }
}

Unity Editor 実行時は呼ばれないようにしたい

Unity Editor 実行時は不要な場合、処理されるファイル名によって要/不要を振り分けるとよさそうです。

Addressable ビルド時は、Library/com.unity.addressables/aa/Windows/settings.json が更新されました(unity2021.3で確認)

using UnityEditor;
using UnityEditor.AddressableAssets.Build;
using UnityEngine;

[InitializeOnLoad]
public static class OnBuildCompleted
{
    static OnBuildCompleted()
    {
        BuildScript.buildCompleted += OnBuildCompleted;
    }

    static void OnBuildCompleted(AddressableAssetBuildResult result)
    {
        if (result.OutputPath.IndexOf("com.unity.addressables") < 0)
        {
            return;
        }

        // ここにビルド後の処理を入れる
        Debug.Log(result.OutputPath);
    }
}

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA