コガネブログ

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

【Unity】Addressable Asset System の設定が変更された時に呼び出されるイベント

概要

using UnityEditor;
using UnityEditor.AddressableAssets.Settings;
using UnityEngine;

[InitializeOnLoad]
public static class Example
{
    static Example()
    {
        AddressableAssetSettings.OnModificationGlobal += OnModificationGlobal;
    }

    private static void OnModificationGlobal
    (
        AddressableAssetSettings                   settings,
        AddressableAssetSettings.ModificationEvent modificationEvent,
        object                                     data
    )
    {
        Debug.Log( modificationEvent.ToString() );
        
        if ( data is AddressableAssetEntry entry )
        {
            Debug.Log( entry.AssetPath );
        }
        else
        {
            Debug.Log( data.ToString() );
        }
    }
}

AddressableAssetSettings.OnModificationGlobal で変更を検知できる
Addressable Asset System の各種 API の引数に存在する postEvent に false を渡した場合は
イベントを発火しないようにすることができる