コガネブログ

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

【Unity】Addressables で依存関係が増えるほどビルド時間がどのくらい長くなるか

検証環境

  • Windows 10
  • Unity 2020.3.13f1
  • Addressables 1.19.11

検証方法

f:id:baba_s:20211126112031p:plain

1,000 個の Scriptable Object を用意して

f:id:baba_s:20211126112103p:plain

すべての Scriptable Object にアドレスを割り振って Default Local Group に追加して

f:id:baba_s:20211126112220p:plain

Default Local Group の Bundle Mode を
「Pack Separately(別々のアセットバンドルに分ける)」にした状態で

f:id:baba_s:20211126112239p:plain

すべての Scriptable Object が他の Scriptable Object を参照していない場合と

f:id:baba_s:20211126112242p:plain

100 個の Scriptable Object を参照している場合と

f:id:baba_s:20211126112244p:plain

200 個の Scriptable Object を参照している場合と

f:id:baba_s:20211126114002p:plain

1,000 個の Scriptable Object を参照している場合でビルド時間を比較

検証結果

項目 ビルド時間
依存関係 0 個 18 秒
依存関係 100 個 1 分 09 秒
依存関係 200 個 5 分 32 秒
依存関係 1,000 個 3 時間経っても終わらない

依存関係が増えるほどビルド時間が伸びる

f:id:baba_s:20211126120617p:plain

特にカタログ生成(GenerateLocationListsTask)に時間がかかるようになる

検証方法2

f:id:baba_s:20211126113046p:plain

Default Local Group の Bundle Mode を
「Pack Together(ひとつのアセットバンドルにまとめる)」にしたらどうなるか検証

検証結果

項目 ビルド時間
依存関係 0 個 4 秒
依存関係 100 個 10 秒
依存関係 200 個 17 秒
依存関係 1,000 個 4 分 35 秒

依存しているアセットがすべて同じアセットバンドルに含まれていれば
依存関係が増えてもビルド時間を抑えられる