【Unity】AddressableアセットシステムによるAssetBundleの分割単位を理解する

UnityのAddressableアセットシステムによるAssetBundleの分割単位についてまとめました。

Unity2019.2.10
Addressable1.3.8

はじめに

この記事ではUnityのAddressableアセットシステムによるAssetBundleの分割単位についてまとめます。
Addressableの概念や基礎知識についての説明はこの記事では省略しますが、
以下の記事にまとめていますので、必要に応じて参照してください。

light11.hatenadiary.com

原則

まず原則として、グループが異なるアセットはAssetBundleも別のものに格納されます。

f:id:halya_11:20191114154825p:plain

また同じグループであっても、Sceneとその以外は別のAssetBundleに格納されます。

f:id:halya_11:20191114155931p:plain

同じグループのAssetBundleをひとまとめにする

さて、同じグループに所属するアセットは、パッキングするルールを設定できます。
まずグループをひとまとめのAssetBundleにするには、グループ設定のAdvanced OptionsのBundle ModeをPack Togetherに設定します。

f:id:halya_11:20191114160258p:plain

アドレス単位で別々のAssetBundleにする

反対に、アドレス単位ですべて別々のAssetBundleに格納するにはBundle ModeをPack Separatelyにします。

f:id:halya_11:20191114160444p:plain

なおこのモードで複数のアセットをまとめてAssetBundleにしたい場合には、それらをまとめてフォルダに入れて、フォルダにだけAddressを付与します。

ラベル単位で別々のAssetBundleにする

Bundle ModeをPack Together By LabeにするとラベルごとにAssetBundleがまとめられます。

f:id:halya_11:20191114160847p:plain

またこの場合、ラベルが付いていないアセットはすべて一つのAssetBundleにまとめられます。

どう分割されているのかを分析する

さて以上の設定の結果、AssetBundleが実際にどう分割されているのかを見るためには分析ツールを使います。

分析ツールはWindow > Asset Management > Addressables > Analyzeから開きます。
ウィンドウが開いたら、Analyze Rules > Unfixable Rules > Build Bundle Layoutを選択してAnalyze Selected Rulesをクリックします。
すると以下のように生成されたAssetBundleが一覧化されます。

f:id:halya_11:20191114161357p:plain

さらに折り畳みを解除すると、暗黙的に含まれている依存関係にあるアセットの情報なども見ることができます。

f:id:halya_11:20191114161501p:plain

関連

light11.hatenadiary.com