Version: 2020.1

Shader.WarmupAllShaders

切换到手册
public static void WarmupAllShaders ();

描述

完全加载所有着色器,以防未来性能中断。

通常,首次需要着色器时,图形驱动程序才会实际准备着色器。 但是,首次使用先前未使用过的着色器渲染某个对象时, 可能会出现暂时性中断,因为驱动程序需要编译/优化着色器。这可能会非常 明显,尤其是在移动平台上。

调用此函数将使用当前加载的所有着色器的所有变体执行虚拟 one-invisible-triangle 渲染。这可能需要一些时间,但有助于 避免未来出现暂时性中断。一般最好使用 ShaderVariantCollection 实现更精细的 着色器预热控制。

请注意,此函数仅预热当前加载(显式或通过对使用自定义着色器的预制件的引用)的着色器。

如果使用 Resources.Load 加载着色器,则需要再次调用 WarmupAllShaders。

另请参阅:ShaderVariantCollection,了解更精细的着色器预热控制。