アセットバンドルのビルド
アセットバンドルを使いこなす

アセットバンドルの依存性

アセットバンドルは、他のバンドル内にある UnityEngine.Objects への参照を含む UnityEngine.Objects がひとつでもあると、他のアセットバンドルに依存する可能性があります。この依存は、参照先の UnityEngine.Objects がどのアセットバンドルにも含まれていない場合には発生しません。この場合は、アセットバンドルのビルド時に、そのバンドルの依存先オブジェクトのコピーが同バンドル内にコピーされます。複数のバンドル内の複数のオブジェクトが、どのバンドルにも割り当てられていない同一オブジェクトへの参照を含んでいる場合、そのオブジェクトに依存する各バンドルがそれぞれにそのオブジェクトのコピーを作成し、作成されたアセットバンドルに加えます。

アセットバンドルに依存が含まれる場合は、インスタンス化しようとしているオブジェクトより先にそのアセットバンドルを読み込むことが重要です。 Unity は自動的には依存関係を読み込みません。

例えば、バンドル1 にあるマテリアルが バンドル2 のテクスチャを参照している場合を考えてみてください。

この例では、 バンドル1 からマテリアルを読み込む前に、 バンドル2 をメモリに読み込む必要があります。 バンドル1バンドル2 を読み込む順序はどちらが先でも問題ありません。重要なのは バンドル1 からマテリアルを読み込む前に バンドル2 を読み込むということです。次項では、前項で触れた AssetBundleManifest オブジェクトを使用して、ランタイムで依存の定義および読み込みを行う方法を説明します。


アセットバンドルのビルド
アセットバンドルを使いこなす