場合によっては、Unity が通常のシェーダーでオブジェクトをレンダリングできないことがあります。このような場合、Unity は、特殊なシェーダーでオブジェクトをレンダリングします。
Unity が元々のシェーダーを使用できない理由によって、使用される特殊なシェーダーが変わります。
オブジェクトのマテリアルまたはシェーダーに問題がある場合、Unity はデフォルトのエラーシェーダーでオブジェクトをレンダリングします。例えば、マテリアルが割り当てられていない場合や、シェーダーがコンパイリングしない場合、シェーダーがサポートされていない場合などです。
デフォルトのエラーシェーダーは Unity エディターとビルドに使用されます。
デフォルトのエラーシェーダーはマゼンタ (明るいピンク) です。
BatchRendererGroup API を使用する場合、Unity ではデフォルトのエラーシェーダーは表示されません。BatchRendererGroup.SetErrorMaterial を使用して、代わりに使用するマテリアルを設定してください。
プロジェクトでユニバーサルレンダーパイプライン (URP) を使用している場合、ビルトインレンダーパイプラインを使用しているオブジェクトは、デフォルトのエラーシェーダーを使用してレンダリングされることがあります。詳細については、「シェーダーを変換する」を参照してください。
Unity は、オブジェクトの表示に必要なシェーダーバリアントがコンパイル中であることを示すために、ローディングシェーダーでオブジェクトをレンダリングします。
非同期シェーダーコンパイルが有効になっている場合、または開発ビルドで Shader Live Link サポートが有効になっている場合は、Unity エディターにローディングシェーダーが表示されます。
ローディングシェーダーはシアン (明るい青色) です。
BatchRendererGroup API を使用した場合、Unity ではローディングシェーダーが表示されません。BatchRendererGroup.SetLoadingMaterial を使用して、代わりに使用するマテリアルを設定してください。
プロジェクトでストリーミング仮想テクスチャリング (SVT) を使用している場合、Unity では SVT の設定の問題を示すための特殊なマテリアルを使用します。詳細は仮想テクスチャリングのエラーマテリアルを参照してください。