コガネブログ

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

【Unity】Addressable Asset System でカタログに記述されているアセットバンドルの一覧をログ出力するエディタ拡張

概要

[MenuItem( "Tools/Hoge" )]
private static void Hoge()
{
    var path        = @"Library\com.unity.addressables\StreamingAssetsCopy\aa\Windows\catalog.json";
    var json        = File.ReadAllText( path );
    var data        = JsonUtility.FromJson<ContentCatalogData>( json );
    var internalIds = data.InternalIds;

    var assetBundles = internalIds
            .Where( c => c.EndsWith( ".bundle" ) )
            .OrderBy( c => c )
        ;

    foreach ( var n in assetBundles )
    {
        Debug.Log( n );
    }
}
  • ビルド後に出力される catalog.json の m_InternalIds の中に
    ビルドしたアセットバンドルの一覧が格納されている
  • m_InternalIds の中にはアセットバンドルに含まれている
    すべてのアセットのパスも記載されているため
    パスの末尾に「.bundle」が付いているものだけ抽出する
  • path の「Windows」の部分はプラットフォームに合わせて適宜変更が必要