介绍

Unity ShaderVariantCollection 主要用于预加载编译 Shader 使用,可以去除首次遇到 Shader 时的编译时间。

具体相关的细节可以参考以下文档与博客:

生成

如何快速地生成 ShaderVariantCollection 呢?最简单的方法就是使用 Unity 自带的导出功能。

但是由于项目内存在非常多的材质,无法手动处理,因此可以将此步骤自动化。

具体方法见之前发过的文章:

步骤

  1. 收集所有材质,包括 AssetBundle 中的、Resources 目录中的、场景中的。
  2. 创建使用材质的模型并显示。
  3. 合理设置相机参数,保证照到所有材质。
  4. 延时执行导出 ShaderVariantCollection

代码