アセットバンドルのビルド
アセットバンドルをネイティブで使用する

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

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

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

以下の例をご参照ください。 Bundle 1 内にある 1 つの Material が Bundle 2 内の Texture を参照しています。

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


  • <span class=“page-edit”>2017–05–15 <!– include IncludeTextNewPageNoEdit –></span>
アセットバンドルのビルド
アセットバンドルをネイティブで使用する