Version: Unity 6.0 (6000.0)
言語 : 日本語
デフォルトのシェーダーキーワード
シェーダーのメモリ使用量の制御

アセットバンドルによるシェーダー複製のトラブルシューティング

アセットバンドル を使用する場合、2 つ以上のオブジェクトで 1 つのシェーダーを参照すると、複製されたシェーダーがコンパイルされる場合があります。 例:

  • アセットバンドルのマテリアルとビルドされたシーンのマテリアルが同じシェーダーを参照する場合。
  • 複数のアセットバンドルに、アセットバンドルの外部の同じシェーダーを参照するマテリアルが含まれる場合。

これにより、シェーダーが使用するメモリとストレージスペースが増加し、ドローコールのバッチ処理 が中断される場合があります。

これを回避するには、以下のアプローチを使用します。

  • 最初にすべてのシェーダーを含むアセットバンドルをロードしてから、シェーダーを参照するアセットバンドルアセットをロードしてインスタンス化します。詳細は、アセットバンドルの依存性 を参照してください。
  • アセットバンドルを構造化して複製を最小限に抑えます。詳細については、アセットの複製 を参照してください。

アセットバンドルにマテリアルと シェーダーバリアントコレクション を追加して、どのシェーダーバリアントを含めるか指定できます。

アセットバンドルを 1 つ作成すると、不要になってもメモリに残ってしまうシェーダーが出てきます。アセットバンドルは部分的にアンロードできないためです。これを回避するには、例えば ‘森林’ アセットバンドルと ‘砂漠’ アセットバンドルなど、一緒に使用するシェーダーのグループごとに別々のアセットバンドルを作成します。ロードされたアセットバンドルの管理 または Addressables システムを使用する場合は Addressables システムのメモリ管理 を参照してください。

デフォルトのシェーダーキーワード
シェーダーのメモリ使用量の制御
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961