原因
使用脚本变更 Material(材质)会导致Standard Shader(标准着色器)使用不同的变体。 例如将一个 Normal Map赋值给一个没有Normal Map的材质,或者将 Emissive 等级设为大于零的值,但这个值本身是0时。
解决方案
首先要使用EnableKeyword 函数来启用 Standard Shader变体。如果您使用了材质原本没有使用的着色器特性,您就需要使用不同的着色器变体。 Standard Shader中的特定关键字及其功能如下: _NORMALMAP (Normal Mapping) _NORMALMAP (法线映射) _ALPHATEST_ON (“Cut out” Transparency Rendering Mode) _ALPHATEST_ON (“裁剪” 透明渲染模式) _ALPHABLEND_ON (“Fade” Transparency Rendering Mode) _ALPHABLEND_ON (“凋谢 ” 透明渲染模式) _ALPHAPREMULTIPLY_ON (“Transparent” Transparency Rendering Mode) _ALPHAPREMULTIPLY_ON (“透明” 透明渲染模式) _EMISSION (Emission Colour or Emission Mapping) _EMISSION (发散颜色或发散映射) _PARALLAXMAP (Height Mapping) _PARALLAXMAP (高度映射) _DETAIL_MULX2 (Secondary “Detail” Maps (Albedo & Normal Map) _DETAIL_MULX2 (二次“详细信息”地图(反照率和法线贴图) _METALLICGLOSSMAP (Metallic/Smoothness Mapping in Metallic Workflow) _METALLICGLOSSMAP (金属工作流中的金属/平滑映射) _SPECCGLOSSMAP (Specular/Smoothness Mapping in Specular Workflow) _SPECCGLOSSMAP (镜面工作流中的镜面/平滑映射)
|