コガネブログ

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

【Unity】Addressable Asset System の CheckForCatalogUpdates や UpdateCatalogs の基本的な使い方

概要

Debug.Log( "CheckForCatalogUpdates 開始" );

// リモートカタログの更新があるかどうか確認する
Addressables.CheckForCatalogUpdates().Completed += checkHandle =>
{
    Debug.Log( $"CheckForCatalogUpdates 終了:{checkHandle.Status}" );

    // 更新があるカタログの名前のリストを取得する
    var catalogs = checkHandle.Result;
    var count    = catalogs.Count;

    // カタログの更新が無い場合はここで終わる
    if ( count <= 0 ) return;

    // 更新があるカタログの名前を出力する
    foreach ( var catalog in catalogs )
    {
        Debug.Log( catalog );
    }

    Debug.Log( "UpdateCatalogs 開始" );

    // リモートカタログを更新する
    Addressables.UpdateCatalogs( catalogs ).Completed += updateHandle =>
    {
        Debug.Log( $"UpdateCatalogs 終了:{updateHandle.Status}" );

        // 更新したカタログのリストを取得する
        var locators = updateHandle.Result;
        
        foreach ( var locator in locators )
        {
            // カタログの LocatorId を出力する
            Debug.Log( $"LocatorId:{locator.LocatorId}" );
            
            // カタログに含まれているすべてのキーを出力する
            var keys = locator.Keys;

            foreach ( var key in keys.Select( c => c.ToString() ).OrderBy( c => c ) )
            {
                Debug.Log( key );
            }
        }
    };
};

参考サイト様