Version: Unity 6.0 (6000.0)
言語 : 日本語
シェーダーのトラブルシューティング
フレーム落ちまたはストールの修正

エラーシェーダーとローディングシェーダー

場合によっては、Unity が通常のシェーダーでオブジェクトをレンダリングできないことがあります。このような場合、Unity は、特殊なシェーダーでオブジェクトをレンダリングします。

Unity が元々のシェーダーを使用できない理由によって、使用される特殊なシェーダーが変わります。

デフォルトのエラーシェーダー

オブジェクトのマテリアルまたはシェーダーに問題がある場合、Unity はデフォルトのエラーシェーダーでオブジェクトをレンダリングします。例えば、マテリアルが割り当てられていない場合や、シェーダーがコンパイリングしない場合、シェーダーがサポートされていない場合などです。

デフォルトのエラーシェーダーは Unity エディターとビルドに使用されます。

デフォルトのエラーシェーダーはマゼンタ (明るいピンク) です。

マゼンタのエラーシェーダー
マゼンタのエラーシェーダー

BatchRendererGroup API を使用する場合、Unity ではデフォルトのエラーシェーダーは表示されません。BatchRendererGroup.SetErrorMaterial を使用して、代わりに使用するマテリアルを設定してください。

プロジェクトでユニバーサルレンダーパイプライン (URP) を使用している場合、ビルトインレンダーパイプラインを使用しているオブジェクトは、デフォルトのエラーシェーダーを使用してレンダリングされることがあります。詳細については、「シェーダーを変換する」を参照してください。

ローディングシェーダー

Unity は、オブジェクトの表示に必要なシェーダーバリアントがコンパイル中であることを示すために、ローディングシェーダーでオブジェクトをレンダリングします。

非同期シェーダーコンパイルが有効になっている場合、または開発ビルドで Shader Live Link サポートが有効になっている場合は、Unity エディターにローディングシェーダーが表示されます。

ローディングシェーダーはシアン (明るい青色) です。

シアンのローディングシェーダー
シアンのローディングシェーダー

BatchRendererGroup API を使用した場合、Unity ではローディングシェーダーが表示されません。BatchRendererGroup.SetLoadingMaterial を使用して、代わりに使用するマテリアルを設定してください。

仮想テクスチャリングのエラーマテリアル

プロジェクトでストリーミング仮想テクスチャリング (SVT) を使用している場合、Unity では SVT の設定の問題を示すための特殊なマテリアルを使用します。詳細は仮想テクスチャリングのエラーマテリアルを参照してください。

シェーダーのトラブルシューティング
フレーム落ちまたはストールの修正