Unity-NGUI灰度图设置

来源:互联网 发布:诺基亚5233软件下载 编辑:程序博客网 时间:2024/05/21 15:07

  关卡设计时,有些未解锁关卡需要设置为灰度图,NGUI中一般空间shader为:Transparent Colored,修改该shader即可(修改部分标记为红色):

Shader "Unlit/Transparent Colored 4" {Properties{_MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {}}SubShader{LOD 100Tags{"Queue" = "Transparent""IgnoreProjector" = "True""RenderType" = "Transparent"}Cull OffLighting OffZWrite OffFog { Mode Off }Offset -1, -1Blend SrcAlpha OneMinusSrcAlphaPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata_t{float4 vertex : POSITION;float2 texcoord : TEXCOORD0;fixed4 color : COLOR;};struct v2f{float4 vertex : SV_POSITION;half2 texcoord : TEXCOORD0;fixed4 color : COLOR;};sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata_t v){v2f o;o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);o.texcoord = v.texcoord;o.color = v.color;return o;}fixed4 frag (v2f i) : COLOR{//fixed4 col = tex2D(_MainTex, i.texcoord) * i.color;//return col;fixed4 col;if(i.color.r==0 && i.color.g==0 && i.color.b==0){col = tex2D(_MainTex, i.texcoord);float grey = dot(col.rgb, float3(0.299, 0.587, 0.114));  col.rgb = float3(grey, grey, grey); }else{col = tex2D(_MainTex, i.texcoord) * i.color;}return col;}ENDCG}}SubShader{LOD 100Tags{"Queue" = "Transparent""IgnoreProjector" = "True""RenderType" = "Transparent"}Pass{Cull OffLighting OffZWrite OffFog { Mode Off }Offset -1, -1ColorMask RGBAlphaTest Greater .01Blend SrcAlpha OneMinusSrcAlphaColorMaterial AmbientAndDiffuseSetTexture [_MainTex]{Combine Texture * Primary}}}}

但是要注意,加上if判断句肯定有性能开销,使用时根据具体情况而定

0 0
原创粉丝点击