Shader "YXJ/Unlit/Wave" { Properties { _MainTex("Base (RGB)", 2D) = "white" {} _Color("Tint", Color) = (1,1,1,1) _ColorStrength("ColorStrength",Float) = 0 _WaveStrength("Wave Strength",Float) = 0.01 _WaveFactor("Wave Factor",Float) = 50 _TimeScale("Time Scale",Float) = 10 _Fade("Fade",Float) = 1 } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } Blend SrcAlpha OneMinusSrcAlpha ColorMask RGB Cull [_Cull] Lighting Off ZWrite Off Pass { ZTest Greater CGPROGRAM #pragma vertex vert #pragma fragment frag struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex:SV_POSITION; float2 uv:TEXCOORD0; }; sampler2D _MainTex; fixed4 _Color; float _WaveStrength; float _WaveFactor; float _TimeScale; float _Fade; float _ColorStrength; v2f vert(appdata v) { v2f o; o.uv = v.uv; o.vertex = UnityObjectToClipPos(v.vertex); return o; } fixed4 frag(v2f IN) :COLOR { fixed2 uvDir = normalize(IN.uv - fixed2(0.5, 0.5)); fixed dis = distance(IN.uv, fixed2(0.5, 0.5)); fixed2 uv = IN.uv + _WaveStrength * uvDir * sin(_Time.y * _TimeScale + dis * _WaveFactor); fixed4 col = tex2D(_MainTex, uv) * _Color * sin(1 - abs(2 * IN.uv.x - 1) + _Fade) * sin (1 - abs(2 * IN.uv.y - 1) + _Fade) * _ColorStrength; col.a *= 0.5; return col; } ENDCG } Pass { ZTest Less CGPROGRAM #pragma vertex vert #pragma fragment frag struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 vertex:SV_POSITION; float2 uv:TEXCOORD0; }; sampler2D _MainTex; fixed4 _Color; float _WaveStrength; float _WaveFactor; float _TimeScale; float _Fade; float _ColorStrength; v2f vert(appdata v) { v2f o; o.uv = v.uv; o.vertex = UnityObjectToClipPos(v.vertex); return o; } fixed4 frag(v2f IN) :COLOR { fixed2 uvDir = normalize(IN.uv - fixed2(0.5, 0.5)); fixed dis = distance(IN.uv, fixed2(0.5, 0.5)); fixed2 uv = IN.uv + _WaveStrength * uvDir * sin(_Time.y * _TimeScale + dis * _WaveFactor); return tex2D(_MainTex, uv) * _Color * sin(1 - abs(2 * IN.uv.x - 1) + _Fade) * sin (1 - abs(2 * IN.uv.y - 1) + _Fade) * _ColorStrength; } ENDCG } } FallBack "Diffuse" }