diff options
Diffstat (limited to 'Assets/Bundle/Shaders/Common/Image/common_img_buzz.shader')
-rw-r--r-- | Assets/Bundle/Shaders/Common/Image/common_img_buzz.shader | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Assets/Bundle/Shaders/Common/Image/common_img_buzz.shader b/Assets/Bundle/Shaders/Common/Image/common_img_buzz.shader new file mode 100644 index 00000000..467733f9 --- /dev/null +++ b/Assets/Bundle/Shaders/Common/Image/common_img_buzz.shader @@ -0,0 +1,75 @@ +// 蜂鸣 + +Shader "Erika/Common/Image/Buzz" +{ + Properties + { + _MainTex("Texture", 2D) = "white" {} + _TileOffset("TileOffset", Vector) = (1,1,0,0) + } + + SubShader + { + Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} + LOD 100 + + ZWrite Off + ZTest LEqual + + Blend One Zero + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + #include "Assets/Bundle/Shaders/Include/ImageEffect.cginc" + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + sampler2D _CameraDepthTexture; + float4 _CameraDepthTexture_ST; + + sampler2D _UnitDepthTexture; + float4 _UnitDepthTexture_ST; + + float4 _TileOffset; // 角色的范围 + + v2f vert(appdata_img v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed2 uv = i.uv; + float depth0 = tex2D(_CameraDepthTexture, uv).r; + float depth1 = tex2D(_UnitDepthTexture, uv).r; + + fixed4 color = tex2D(_MainTex, uv); + + if (abs(depth0 - depth1) < 0.001f && depth1 != 1) + { + color.r = 1; + } + + return color; + } + ENDCG + } + } + +} // shader |