Shader "Engine/GridOverlay" { Properties { _MainTex ("Tile Texture", 2D) = "white" {} _ColorsTex ("Colors Texture", 2D) = "white" {} _GridU ("Grid Size U", float) = 0 _GridV ("Grid Size V", float) = 0 } SubShader { Tags { "IGNOREPROJECTOR" = "true" "PreviewType" = "Plane" "QUEUE" = "Transparent" "RenderType" = "Transparent" } Pass // ind: 1, name: { Tags { "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; uniform sampler2D _ColorsTex; uniform float _GridU; uniform float _GridV; 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; float4 tmpvar_1; tmpvar_1.w = 1; tmpvar_1.xyz = in_v.vertex.xyz; out_v.vertex = mul(unity_MatrixVP, mul(unity_ObjectToWorld, tmpvar_1)); out_v.xlv_TEXCOORD0 = in_v.texcoord.xy; return out_v; } #define CODE_BLOCK_FRAGMENT OUT_Data_Frag frag(v2f in_f) { OUT_Data_Frag out_f; float4 tmpvar_1; float2 cc_2; float2 tc_3; float2 p_4; float2 gi_5; float tmpvar_6; tmpvar_6 = (in_f.xlv_TEXCOORD0.x * _GridU); gi_5.x = floor(tmpvar_6); float tmpvar_7; tmpvar_7 = (in_f.xlv_TEXCOORD0.y * _GridV); gi_5.y = floor(tmpvar_7); p_4.x = (tmpvar_6 - gi_5.x); p_4.y = (tmpvar_7 - gi_5.y); tc_3.x = (0.5 + ((p_4.x - p_4.y) * 0.5)); tc_3.y = ((p_4.x + p_4.y) * 0.5); cc_2.x = ((gi_5.x + 0.5) / _GridU); cc_2.y = ((gi_5.y + 0.5) / _GridV); float4 tmpvar_8; tmpvar_8 = tex2D(_MainTex, tc_3); float4 tmpvar_9; tmpvar_9 = tex2D(_ColorsTex, cc_2); tmpvar_1 = (tmpvar_8 * tmpvar_9); out_f.color = tmpvar_1; return out_f; } ENDCG } // end phase } FallBack Off }