Version: 2022.3
言語: 日本語
WebGL アプリケーションのビルド
ディストリビューションサイズとコードストリッピング

アセットバンドルによるロード時間の短縮

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

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

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

  • WebGL はスレッドをサポートしていません。http ダウンロードはダウンロードが終了したときにのみ利用可能になるため、Unity WebGL ビルドはダウンロードが完了した時にメインスレッド上のアセットバンドルデータを解凍してメインスレッドをブロックする必要があります。この中断を回避するために、LZMA アセットバンドル圧縮 は WebGL 上のアセットバンドルでは使用できません。代わりに LZ4 を使用して圧縮します。LZ4 は、必要に応じて効率的に解凍されます。 LZ4 よりも小さい圧縮サイズが必要な場合は、Web サーバーを設定して、アセットバンドルで (LZ4 圧縮に加えて) gzip または Brotli 圧縮 を使用できます。これを行う方法について詳しくは、WebGL アプリケーションのデプロイ を参照してください。

  • WebGL では、UnityWebRequestAssetBundle.GetAssetBundle による AssetBundle のキャッシュをサポートしています。このメソッドは、ブラウザーの IndexedDB API を使用してユーザーのデバイスにキャッシュを保存します。ブラウザーによっては IndexedDB のサポートが制限されている場合があり、またどのブラウザーでもディスクにデータを保存する際にユーザーの承認を求める場合があります。詳細については、WebGL ブラウザーの互換性 を参照してください。

WebGL アプリケーションのビルド
ディストリビューションサイズとコードストリッピング
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961