Shader "Erika/Unit/ImageEffect/unit_img_glitch" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"} LOD 100 ZWrite Off ZTest LEqual Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag (v2f i) : SV_Target { float amount = 0.05f; // sample the texture float angle = 90; float sinValue = sin(radians(angle)); float cosValue = cos(radians(angle)); fixed4 col = tex2D(_MainTex, i.uv); fixed4 col2 = tex2D(_MainTex, i.uv + fixed2(amount * sinValue, amount * cosValue)); fixed4 col3 = tex2D(_MainTex, i.uv + fixed2(2 * amount * sinValue, 2 * amount * cosValue)); fixed4 col4 = ( col.a + col2.a + col3.a ) / 3; fixed4 color = fixed4(col.r, col2.g, col3.b, col4.a); return color; } ENDCG } } }