传统按钮置灰,需要使用另外一张纹理。
本例通过修改shader和NGUI sprite的r值实现按钮置灰。优势:节省纹理,操作简单
将NGUI Unlit/Transparent Colored片段部分改成如下:
fixed4 frag (v2f i) : COLOR { fixed4 col= tex2D(_MainTex, i.texcoord) * i.color; if(i.color.r < 0.0001) { float grey = dot(col.rgb, float3(0.299, 0.587, 0.114)); col.rgb = float3(grey, grey, grey); } return col; }
说明:其中(0.299,0.587,0.114)为灰度公式的参数
使用时仅需将sprite的颜色R值设置为0即可!