| 
					
				 | 
			
			
				@@ -0,0 +1,125 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Shader "MyShader/UIImageGray" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //修改Unity官方内置shader,UI-Default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // [PerRendererData]  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _MainTex ("Sprite Texture", 2D) = "white" {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _Color ("Tint", Color) = (1,1,1,1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _StencilComp ("Stencil Comparison", Float) = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _Stencil ("Stencil ID", Float) = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _StencilOp ("Stencil Operation", Float) = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _StencilWriteMask ("Stencil Write Mask", Float) = 255 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _StencilReadMask ("Stencil Read Mask", Float) = 255 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _ColorMask ("Color Mask", Float) = 15 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     _ClipRect ("Clip Rect", Vector) = (-32767, -32767, 32767, 32767) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        _GreyValue("_GreyValue",range(0,1))=0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    SubShader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "Queue"="Transparent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "IgnoreProjector"="True" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "RenderType"="Transparent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "PreviewType"="Plane" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "CanUseSpriteAtlas"="True" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Stencil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Ref [_Stencil] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Comp [_StencilComp] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Pass [_StencilOp] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ReadMask [_StencilReadMask] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WriteMask [_StencilWriteMask] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Cull Off 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Lighting Off 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ZWrite Off 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ZTest [unity_GUIZTestMode] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Blend SrcAlpha OneMinusSrcAlpha 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ColorMask [_ColorMask] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Name "Default" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CGPROGRAM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #pragma vertex vert 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #pragma fragment frag 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #pragma target 2.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #include "UnityCG.cginc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #include "UnityUI.cginc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #pragma multi_compile __ UNITY_UI_CLIP_RECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            #pragma multi_compile __ UNITY_UI_ALPHACLIP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            struct appdata_t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float4 vertex : POSITION; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float4 color : COLOR; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float2 texcoord : TEXCOORD0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UNITY_VERTEX_INPUT_INSTANCE_ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            struct v2f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float4 vertex : SV_POSITION; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fixed4 color : COLOR; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float2 texcoord : TEXCOORD0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float4 worldPosition : TEXCOORD1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UNITY_VERTEX_OUTPUT_STEREO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sampler2D _MainTex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fixed4 _Color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fixed4 _TextureSampleAdd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float4 _ClipRect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float4 _MainTex_ST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float _GreyValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v2f vert(appdata_t v) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v2f OUT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UNITY_SETUP_INSTANCE_ID(v); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OUT.worldPosition = v.vertex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OUT.vertex = UnityObjectToClipPos(v.vertex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                OUT.color = v.color * _Color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return OUT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fixed4 frag(v2f IN) : SV_Target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #ifdef UNITY_UI_CLIP_RECT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #ifdef UNITY_UI_ALPHACLIP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                clip (color.a - 0.001); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                half gray = dot(color.rgb, fixed3(0.299, 0.587, 0.114)); //0.222, 0.707, 0.071 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                float3 graycolor = fixed3(gray, gray, gray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                color.rgb = graycolor*  color.a ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //color.rgb=lerp(color.rgb,graycolor,_GreyValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ENDCG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |