シェーダー除去
Unity では単一のシェーダーソースファイルから多数のシェーダーバリアントをコンパイルします。シェーダーバリアントの数は、シェーダーに含めたキーワードの数によって変わります。デフォルトのシェーダーでは、Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) はライティングとシャドウのキーワードのセットを使用します。URP は URP アセット でアクティブになっている機能に応じて、一部のシェーダーバリアントを除外することができます。
URP アセットの特定の機能を無効にすると、関連するシェーダーバリアントがパイプラインによってビルドから "除去" されます。シェーダーを除去すると、ビルドサイズが小さくなり、ビルド時間が短縮されます。これは、プロジェクトで特定の機能やキーワードを使用しない場合に便利です。
例えば、あるプロジェクトではディレクショナルライトのシャドウをまったく使用しないとします。シェーダー除去を行わないと、ディレクショナルシャドウをサポートするシェーダーバリアントがビルド内に残ります。これらのシャドウをまったく使用しないことがわかっている場合は、URP アセットのメインディレクショナルライトまたは追加ディレクショナルライトの Cast Shadow のチェックを外します。そうすると、これらのシェーダーバリアントがビルドから除去されます。
Unity でのシェーダーバリアントの除去について詳しくは、こちらの Christophe Riccio によるブログ投稿 を参照してください。