您可以使用 C# API 监控异步着色器在 GPU 上运行的程序。 更多信息
参阅 词汇表编译的状态,并在状态发生变化时执行操作。
这在高级渲染中可能最有帮助;如果占位符着色器污染了您生成的数据,则可以等到编译完成,丢弃受污染的数据,并使用正确的着色器变体重新生成新的数据。
如果您已经知道您感兴趣的材质,则可以使用 ShaderUtil.IsPassCompiled
检查着色器变体的编译状态。当状态从未编译变为已编译时,表示编译完成。
如果您不知道您感兴趣的材质,或者对多个材质感兴趣,则可以使用 ShaderUtil.anythingCompiling
检测 Unity 是否正在异步编译任何着色器变体。当该值从true
变为false
时,表示当前所有编译已完成。