シェーダーバリアント のコンパイルを避けることができます。これは ストリッピング と呼ばれます。不要なバリアントを取り除くことで、ビルド時間、ファイルサイズ、シェーダーのロード時間、ランタイムのメモリ使用量を大幅に削減できます。大規模なプロジェクトや複雑なシェーダーを持つプロジェクトでは、これは非常に重要な考慮事項です。
以下のシェーダーキーワードの宣言方法によって、生成されるバリアントの数を制限することができます。
multi_compile
の代わりに shader_feature
を可能な限り使用します。multi_compile
で使わないキーワードを定義しないようにします。ハンドコーディングされたシェーダーでこれを行う方法については、HLSL でのシェーダーキーワードの宣言と使用 を参照してください。Shader Graph での実行については、[Shader Graph ブラックボード]を参照してください。Blackboard](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest?subfolder=/manual/Blackboard.html) を参照してください。
Unity エディターの UI には、シェーダーストリッピングを設定できる箇所がいくつかあります。
他の方法では除去できないシェーダーバリアントについては、エディタースクリプトで以下の API を使用してビルド時のストリッピングを行うことができます。
ストリッピングについての詳細は、Unity のブログ スクリプタブルシェーダーバリアントの除去 を参照してください。