有时,Unity 无法使用常规着色器渲染对象。发生这种情况时,Unity 会使用特殊着色器渲染对象:
Unity 使用的特殊着色器取决于 Unity 无法使用原始着色器的原因。
当对象的材质或着色器出现问题时(例如,如果未分配材质、着色器未编译或不支持着色器),Unity 会使用默认错误着色器渲染对象。
Unity 在 Unity 编辑器 (Editor) 和构建中使用默认错误着色器。
默认错误着色器为洋红色(明亮的粉红色)。
使用 BatchRendererGroup API 时,Unity 不会显示默认错误着色器。使用 BatchRendererGroup.SetErrorMaterial 可设置改用的材质。
如果项目使用通用渲染管线 (URP),并且对象使用内置渲染管线中的着色器,Unity 可能会使用默认错误着色器渲染对象。请参阅转换着色器以了解更多信息。
Unity 使用加载着色器渲染对象,以指示 Unity 正在编译显示该对象所需的着色器变体。
启用异步着色器编译后,Unity 在 Unity 编辑器中显示加载着色器,或在启用 Shader Live Link 支持后在开发建构中显示加载着色器。
加载着色器为青色(亮蓝色)。
使用 BatchRendererGroup API 时,Unity 不会显示加载着色器。使用 BatchRendererGroup.SetLoadingMaterial 可设置改用的材质。
如果项目使用串流虚拟纹理 (SVT),Unity 会使用特殊材质来指示 SVT 设置中的问题。有关更多信息,请参阅虚拟纹理错误材质。