Version: Unity 6.0 (6000.0)
言語 : 日本語
シェーダーの非同期コンパイルを有効化/無効化
非同期のシェーダーコンパイルのトラブルシューティング

非同期シェーダーコンパイルの検出

C# の API を使って、非同期のシェーダコンパイルの状態を監視し、その状態が変化したときに操作を行うことができます。

これは 高度なレンダリング で最も有効な方法です。プレースホルダーのシェーダーが生成されたデータを汚染する場合は、コンパイルが完了するまで待って、汚染されたデータを破棄し、正しいシェーダーバリアントで新しいセットを再生成できます。

調べたいマテリアルがすでにわかっている場合は、ShaderUtil.IsPassCompiled を使って、シェーダーバリアントのコンパイル状況を確認することができます。ステータスが Uncompiled から Compiled に変わると、コンパイルが完了です。

どのマテリアルを調べたいのかわからない場合や、複数のマテリアルを調べたい場合は、 ShaderUtil.anythingCompiling を使って、Unity がシェーダーバリアントを非同期にコンパイルしているかどうかを検出できます。これが true から false に変わると、現在のすべてのコンパイルは完了です。

シェーダーの非同期コンパイルを有効化/無効化
非同期のシェーダーコンパイルのトラブルシューティング