|
@@ -0,0 +1,105 @@
|
|
|
+Shader "DashGame/HighLight"
|
|
|
+{
|
|
|
+ Properties
|
|
|
+ {
|
|
|
+ [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
|
|
|
+ _Scale("Scale", float) = 0.02
|
|
|
+ [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
|
|
|
+ }
|
|
|
+
|
|
|
+ SubShader
|
|
|
+ {
|
|
|
+ Tags
|
|
|
+ {
|
|
|
+ "Queue" = "Transparent"
|
|
|
+ "IgnoreProjector" = "True"
|
|
|
+ "RenderType" = "Transparent"
|
|
|
+ "PreviewType" = "Plane"
|
|
|
+ "CanUseSpriteAtlas" = "True"
|
|
|
+ }
|
|
|
+
|
|
|
+ Cull Off
|
|
|
+ Lighting Off
|
|
|
+ ZWrite Off
|
|
|
+
|
|
|
+ Pass
|
|
|
+ {
|
|
|
+ Blend SrcAlpha OneMinusSrcAlpha
|
|
|
+
|
|
|
+ CGPROGRAM
|
|
|
+
|
|
|
+ #pragma vertex vert
|
|
|
+ #pragma fragment frag
|
|
|
+
|
|
|
+ #pragma target 2.0
|
|
|
+
|
|
|
+ #pragma multi_compile _ PIXELSNAP_ON
|
|
|
+ #pragma multi_compile _ ETC1_EXTERNAL_ALPHA
|
|
|
+
|
|
|
+ #include "UnityCG.cginc"
|
|
|
+
|
|
|
+ struct appdata_t
|
|
|
+ {
|
|
|
+ float4 vertex : POSITION;
|
|
|
+ float4 color : COLOR;
|
|
|
+ float2 texcoord : TEXCOORD0;
|
|
|
+ };
|
|
|
+
|
|
|
+ struct v2f
|
|
|
+ {
|
|
|
+ float4 vertex : SV_POSITION;
|
|
|
+ float2 texcoord : TEXCOORD0;
|
|
|
+ };
|
|
|
+
|
|
|
+ float _Scale;
|
|
|
+
|
|
|
+ v2f vert(appdata_t IN)
|
|
|
+ {
|
|
|
+ v2f OUT;
|
|
|
+
|
|
|
+ OUT.vertex = UnityObjectToClipPos(IN.vertex);
|
|
|
+ OUT.texcoord = IN.texcoord;
|
|
|
+
|
|
|
+ return OUT;
|
|
|
+ }
|
|
|
+
|
|
|
+ sampler2D _MainTex;
|
|
|
+
|
|
|
+ fixed4 SampleSpriteTexture(float2 uv)
|
|
|
+ {
|
|
|
+ fixed4 color = tex2D(_MainTex, uv);
|
|
|
+
|
|
|
+ return color;
|
|
|
+ }
|
|
|
+
|
|
|
+ fixed4 frag(v2f IN) : SV_Target
|
|
|
+ {
|
|
|
+ fixed4 c = SampleSpriteTexture(IN.texcoord);
|
|
|
+
|
|
|
+ if (c.a == 0)
|
|
|
+ {
|
|
|
+ fixed4 c1 = SampleSpriteTexture(IN.texcoord + float2(_Scale, 0));
|
|
|
+ fixed4 c2 = SampleSpriteTexture(IN.texcoord + float2(-_Scale, 0));
|
|
|
+ fixed4 c3 = SampleSpriteTexture(IN.texcoord + float2(0, _Scale));
|
|
|
+ fixed4 c4 = SampleSpriteTexture(IN.texcoord + float2(0, -_Scale));
|
|
|
+ fixed4 c5 = SampleSpriteTexture(IN.texcoord + float2(_Scale, _Scale));
|
|
|
+ fixed4 c6 = SampleSpriteTexture(IN.texcoord + float2(_Scale, -_Scale));
|
|
|
+ fixed4 c7 = SampleSpriteTexture(IN.texcoord + float2(-_Scale, _Scale));
|
|
|
+ fixed4 c8 = SampleSpriteTexture(IN.texcoord + float2(-_Scale, -_Scale));
|
|
|
+
|
|
|
+ if (c1.a > 0 || c2.a > 0 || c3.a > 0 || c4.a > 0 || c5.a > 0 || c6.a > 0 || c7.a > 0 || c8.a > 0)
|
|
|
+ {
|
|
|
+ c.rgba = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (c.a < 1)
|
|
|
+ {
|
|
|
+ c.rgba = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ return c;
|
|
|
+ }
|
|
|
+ ENDCG
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|