I have a simple shader I use for water. I want it rendered before the terrain trees, so I set the queue to “Transparent-200” (the trees queue is “Transparent-100”).
I have done this years ago in other projects and it always worked.
However now it doesn’t work, I’ve tried setting the que to different values but none has any effect, it’s like the queue tag is being ignored completely.
any ideas?
here’s the shader:
Shader "Custom/WaterMobile" {
Properties {
_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
}
SubShader {
Tags {"IgnoreProjector"="True" "RenderType"="Transparent" "Queue"="Transparent-200"}
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata_t {
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
UNITY_FOG_COORDS(1)
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col = tex2D(_MainTex, i.texcoord);
i.texcoord.x += _Time.x*0.05;
col.rgb = tex2D(_MainTex, i.texcoord*21).rgb;
i.texcoord.x -= _Time.x*0.12;
col.rgb += tex2D(_MainTex, i.texcoord.yx*13).rgb;
col.rgb*=0.5;
//col.rgb *= tex2D(_MainTex, i.texcoord.yx*13).rgb *2;
col.a = saturate(col.a *col.r*3);
UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}