Shader "Sprites/Greyscale" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} } SubShader { Tags { "CanUseSpriteAtlas" = "true" "IGNOREPROJECTOR" = "true" "PreviewType" = "Plane" "QUEUE" = "Transparent" "RenderType" = "Transparent" } Pass // ind: 1, name: { Tags { "CanUseSpriteAtlas" = "true" "IGNOREPROJECTOR" = "true" "PreviewType" = "Plane" "QUEUE" = "Transparent" "RenderType" = "Transparent" } ZWrite Off Cull Off Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha // m_ProgramMask = 6 CGPROGRAM //#pragma target 4.0 #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" #define CODE_BLOCK_VERTEX //uniform float4x4 unity_ObjectToWorld; //uniform float4x4 unity_MatrixVP; uniform sampler2D _MainTex; struct appdata_t { float4 vertex :POSITION; float4 texcoord :TEXCOORD0; }; struct OUT_Data_Vert { float2 xlv_TEXCOORD0 :TEXCOORD0; float4 vertex :SV_POSITION; }; struct v2f { float2 xlv_TEXCOORD0 :TEXCOORD0; }; struct OUT_Data_Frag { float4 color :SV_Target0; }; OUT_Data_Vert vert(appdata_t in_v) { OUT_Data_Vert out_v; float2 tmpvar_1; tmpvar_1 = in_v.texcoord.xy; float2 tmpvar_2; float4 tmpvar_3; tmpvar_3.w = 1; tmpvar_3.xyz = in_v.vertex.xyz; tmpvar_2 = tmpvar_1; out_v.vertex = mul(unity_MatrixVP, mul(unity_ObjectToWorld, tmpvar_3)); out_v.xlv_TEXCOORD0 = tmpvar_2; return out_v; } #define CODE_BLOCK_FRAGMENT OUT_Data_Frag frag(v2f in_f) { OUT_Data_Frag out_f; float4 color_1; float4 tmpvar_2; tmpvar_2 = tex2D(_MainTex, in_f.xlv_TEXCOORD0); color_1.w = tmpvar_2.w; float _tmp_dvx_0 = (((tmpvar_2.x + tmpvar_2.y) + tmpvar_2.z) / 3); color_1.xyz = float3(_tmp_dvx_0, _tmp_dvx_0, _tmp_dvx_0); out_f.color = color_1; return out_f; } ENDCG } // end phase } FallBack Off }