Addressablesのパッキング(アーカイブ)に関するメモです。
動作確認環境
- Unity 2022.1.2f1
- macOS 12.4
- Addressables 1.12.0
概要
AddressablesのGroup設定は、
Assets/AddressableAssetsData/AssetGroupsに
Scriptableアセットとして列挙されます。
本稿では、このGroup設定の中でパッキング方法に直接影響のある
Bundle Mode に絞ってユースケースを記載します。
素材
キャラクターモデルのアセットを扱うと想定して、
それぞれのフォルダにfbxファイルが1つ入っている構成を検証しました。
又、検証用のグループとして Assets/AddressableAssetsData/AssetGroups/SampleModel.asset
を作成しました。
ユースケース
グループに所属するアセットを、1つのファイルにパッキングする
Bundle Mode に 【Pack Together】 を設定します。
SampleModelグループに対象となるアセットを登録します。
対象のアセット群が1つのファイルにパッキングされました。
※作成されるバンドルファイル名は、Labelの影響は受けません
グループに所属するアセットを、全てパッキングせず独立したファイルにする
Bundle Mode に 【Pack Separately】 を設定します。
SampleModelグループに対象となるアセットを登録します。
対象のアセット群が、それぞれ独立したバンドルファイルとして作成されました。
※作成されるバンドルファイル名は、Labelの影響は受けません
グループに所属するアセットを、同じラベルを持つアセット単位でパッキングする
Bundle Mode に 【Pack Together By Label】 を設定します。
パッキングする定義の数だけグループを作成するのは管理が著しく大変になるので、
ラベルを使ってパッキングの単位を設定します。
SampleModelグループに対象となるアセットを登録します。
まずはラベル名を付けないでやってみます。
全てが空文字ラベル?として、1つのファイルにパッキングされました。
次にchXXXの単位でラベルを付けてみます。
ちなみにラベル名に / を入れると
DownLoadの振る舞いについて
適切な単位でパッキングができると、
ダウンロードする際のGETリクエストの数が抑制できたりしますが、
1度ダウンロード後、一緒に内包されるファイルが1つでも更新があると、
他のパッキングされるファイルも全てダウンロードの対象となってしまうので
最適なパッキングの単位については常に頭を悩ませさせられます。