每一个Material都要选择一个使用的Shader.每一个Material都会存储自己的值
我们新建一个混色的Shader,再分别创建四个Material,其效果如下:
Shader代码如下:
Shader"Custom/11.25/2"{ Properties{ _Value("Cofficient",Range(0,10))=2.5 _AmbientColor("Ambient Color",color)=(1,1,1,1) _EmissiveColor("Emissive Color",color)=(1,1,1,1) } SubShader{ Tags{"RenderType"="Opaque"} LOD 200 CGPROGRAM #pragma surface surf Lambert float4 _AmbientColor; float4 _EmissiveColor; float _Value; struct Input{ float2 uv_MainTex; }; void surf(Input In,inout SurfaceOutput o){ float4 c=pow(_AmbientColor+_EmissiveColor,_Value); o.Alpha=c.a; o.Albedo=c.rgb; } ENDCG } FallBack "Diffuse" }
为四个Material分别选择了当前Shader后,每一个Material值的改变只影响自己的物体.