Version: Unity 6.0 (6000.0)
言語 : 日本語
ウェブ Build フォルダー
分布サイズとコードストリッピング

ウェブのアセットバンドル

ノート: Unity の Addressables システム はアセットのロードに推奨されるアプローチです。以下の内容は、アセットバンドルを直接使用する場合にのみ適用されます。

コンテンツを開始する前にすべてのアセットデータを事前にダウンロードする必要があるため、アセットを主要データファイルから アセットバンドル に移動することを検討します。そうすることで、ロードが高速なより小さなローダーシーンが作成され、ユーザーがコンテンツを進めるときにアセットバンドルがオンデマンドで動的にアセットをロードします。アセットバンドルは、アセットデータのメモリ の管理にも役立ちます。AssetBundle.Unload を呼び出すことで、不要になったアセットのアセットデータをメモリからアンロードできます。

ウェブプラットフォームでアセットバンドルを使用する場合に、以下を考慮する必要があります。

  • メインビルドで使用されていないクラスタイプをアセットバンドルで使用すると、Unity はそれらのクラスのコードをビルドから削除することがあります。アセットバンドルからアセットをロードしようとすると失敗する原因になる場合があります。それを修正するには BuildPlayerOptions.assetBundleManifestPath を使用するか、他のオプションについては 配布サイズとコードストリッピング を参照してください。

  • WebGL グラフィックス API はスレッドをサポートしません。HTTP ダウンロードはダウンロード後にのみ使用可能になるため、Unity ウェブプラットフォームのビルドでは、ダウンロードの完了後にアセットバンドルデータをメインスレッドで解凍する必要があり、メインスレッドをブロックすることになります。この中断を回避するために、LZMA アセットバンドル圧縮 はウェブ上のアセットバンドルでは使用できません。アセットバンドルは代わりに LZ4 を使用して圧縮され、オンデマンドで効率的に解凍されます。LZ4 よりも小さい圧縮サイズが必要な場合は、アセットバンドルで (LZ4 圧縮に加えて) gzip または Brotli 圧縮を使用するようにウェブサーバーを設定します。この方法の詳細については、圧縮ビルドの展開 を参照してください。

  • ウェブプラットフォームでは、UnityWebRequestAssetBundle.GetAssetBundle によるファイルシステムベースのアセットバンドルのキャッシングはサポートされません。代わりに、ブラウザーは WebRequest 応答をキャッシュします。詳細は、ウェブのキャッシュ動作 を参照してください。つまり、アセットバンドルのロード時にはアセットバンドルファイル全体がメモリに保持され、特にサイズが大きい場合は、使用されていないアセットバンドルを速やかにアンロードする必要があります。

追加リソース

ウェブ Build フォルダー
分布サイズとコードストリッピング