Version: 2020.1
AssetDatabase によるバッチ処理
アセットバンドルのワークフロー

アセットバンドル

AssetBundle (アセットバンドル) はランタイムに読み込むプラットフォーム特有のコード以外のアセット (モデル、テクスチャ、プレハブ、オーディオクリップ、シーン全体) を含むアーカイブファイルです。アセットバンドルは互いの依存関係を示すことができます。例えば、あるアセットバンドル のマテリアルは他のアセットバンドルのテクスチャを参照できます。ネットワークを使った効果的な配布のために、アセットバンドルはその使用要件に応じてビルトインのアルゴリズムの中の 1 つで圧縮されます (LZMA と LZ4)。

アセットバンドルはダウンロードコンテンツ (DLC) に有用で、初期インストールサイズを削減し、エンドユーザーのプラットフォームのために最適化されたアセットを読み込み、ランタイムのメモリにかかる負担を軽減します。

Note: An AssetBundle can contain the serialized data of an instance of a code object, such as a ScriptableObject. However, the class definition itself is compiled into one of the Project assemblies. When you load a serialized object in an AssetBundle, Unity finds the matching class definition, creates an instance of it, and sets that instance’s fields using the serialized values. This means that you can introduce new items to your game in an AssetBundle as long as those items do not require any changes to you class definitions.

アセットバンドルには何が含まれているか

“アセットバンドル” は 2 つの異なる、しかし、関連するものを意味しています。

最初はディスク上の実際のファイルです。これはアセットバンドルアーカイブと呼ばれます。アセットバンドルアーカイブはフォルダーのようなコンテナで、その中にさらにファイルを保持します。これらのファイルには 2 種類あります。

  • シリアル化したファイル。個々のオブジェクトに分割され、この 1 つのファイルに書き出されたアセットが含まれています
  • リソースファイル。特定のアセット (テクスチャとオーディオ ) 用に別々に格納されたバイナリデータのチャンクで、Unity が別のスレッドのディスクから効率的にロードできるようにします。

“アセットバンドル”は、特定のアセットバンドルアーカイブからアセットをロードするために、コードを通して相互作用する実際のアセットバンドルオブジェクトを参照することもできます。このオブジェクトには、このアーカイブに加えたアセットのすべてのファイルパスのマップが含まれます。

詳細は、Assets, Resources and AssetBundles を参照してください。

ノート: “アセットバンドルマネージャー”は古いバージョンの Unity で使用されていたツールで、アセットバンドルを使用してアセット管理を効率化するのに有用でした。Unity バージョン 2018.2 以降、アセットバンドルマネージャーは非推奨にされたため、代わりに Addressable アセット パッケージを使用してください。

AssetDatabase によるバッチ処理
アセットバンドルのワークフロー