既然这样好了,那看来真机调试时其他的⼀些问题⽐如⾓⾊表现增强效果应该也是这个原因喽,那索性把其他的shader也都加进来吧,省的后⾯再出问题。别说这招真是包治百病,单机界⾯⾥我们还⽤了不少Standar shader,也就添加进来吧。ok,⼀切问题解决。。。。。。了吗?
2.通过代码创建ShaderVariantCollection,并调⽤WarmUp接⼝
下⾯总结下我分析出来的Unity5.0 - 5.2的Shader编译加载策略
1. 发布⼯程时,Unity 会将全部multi_compile定义宏组合成的variant编译并加⼊包中家在何方
日薄西山
孙立人简介>小池赏析2. 发布⼯程时,Unity 会将全部关联材质引⽤到的variant编译并加⼊包中
慧骃3. 发布⼯程时,Unity会将Always Included Shaders列表中全部Shader的全部variant编译并加⼊包中
大佛寺景区4. Build Astbundle时,Unity会将关联的Shader的全部由multi_compile定义的variant以及使⽤到的variant编译并加⼊包中
实测,使⽤multi_compile,是可以在运⾏时(真机上)⽤EnableKeyword和DisableKeyword动态改变材质,⽽shader_feature不⾏
旅顺监狱
⽂档中也写到:
So shader_feature makes most n for keywords that will be t on the materials, while multi_compile for keywords that will be t from code globally.
shader_feature适合在材质中设置,⽽multi_compile 适合⽤代码全局设置和女生聊天话题大全