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

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

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

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

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

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


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