AssetBundle (アセットバンドル) はランタイムに読み込むプラットフォーム特有のコード以外のアセット (モデル、テクスチャ、プレハブ、オーディオクリップ、シーン全体) を含むアーカイブファイルです。アセットバンドルは互いの依存関係を示すことができます。例えば、あるアセットバンドル のマテリアルは他のアセットバンドルのテクスチャを参照できます。ネットワークを使った効果的な配布のために、アセットバンドルはその使用要件に応じてビルトインのアルゴリズムの中の 1 つで圧縮されます (LZMA と LZ4)。
アセットバンドルはダウンロードコンテンツ (DLC) に有用で、初期インストールサイズを削減し、エンドユーザーのプラットフォームのために最適化されたアセットを読み込み、ランタイムのメモリにかかる負担を軽減します。
ノート: アセットバンドルには、ScriptableObject などのコードオブジェクトのインスタンスのシリアル化されたデータを格納することができます。ただし、クラス定義自体はプロジェクトアセンブリの 1 つにコンパイルされます。シリアル化されたオブジェクトをアセットバンドルにロードすると、Unity は一致するクラス定義を見つけ、そのインスタンスを作成し、シリアル化された値を使用してそのインスタンスのフィールドを設定します。つまり、これらのアイテムがクラス定義の変更を必要としない限り、アセットバンドルでゲームに新しいアイテムを導入できます。
“アセットバンドル” は 2 つの異なる、しかし、関連するものを意味しています。
最初はディスク上の実際のファイルです。これはアセットバンドルアーカイブと呼ばれます。アセットバンドルアーカイブはフォルダーのようなコンテナで、その中にさらにファイルを保持します。これらのファイルには 2 種類あります。
“アセットバンドル”は、特定のアセットバンドルアーカイブからアセットをロードするために、コードを通して相互作用する実際のアセットバンドルオブジェクトを参照することもできます。このオブジェクトには、このアーカイブに加えたアセットのすべてのファイルパスのマップが含まれます。