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