You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
| 
											2 years ago
										 | Shader "Custom/ParticleSprite" | ||
|  | { | ||
|  |     Properties | ||
|  |     { | ||
|  |         [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} | ||
|  |         _Color ("Tint", Color) = (1,1,1,1) | ||
|  |         [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 | ||
|  |     } | ||
|  | 
 | ||
|  |     SubShader | ||
|  |     { | ||
|  |         Tags { "RenderType"="Opaque" "Queue" = "Overlay" } | ||
|  |         ZWrite Off | ||
|  |         ZTest Always | ||
|  |         Cull Off | ||
|  | 
 | ||
|  |         Pass | ||
|  |         { | ||
|  |             Blend SrcAlpha OneMinusSrcAlpha | ||
|  |             CGPROGRAM | ||
|  |             #pragma vertex vert | ||
|  |             #pragma fragment frag | ||
|  |             #pragma multi_compile _ PIXELSNAP_ON | ||
|  |             #include "UnityCG.cginc" | ||
|  |              | ||
|  |             struct appdata_t | ||
|  |             { | ||
|  |                 float4 vertex   : POSITION; | ||
|  |                 float4 color    : COLOR; | ||
|  |                 float2 texcoord : TEXCOORD0; | ||
|  |             }; | ||
|  | 
 | ||
|  |             struct v2f | ||
|  |             { | ||
|  |                 float4 vertex   : SV_POSITION; | ||
|  |                 fixed4 color    : COLOR; | ||
|  |                 float2 texcoord  : TEXCOORD0; | ||
|  |             }; | ||
|  |              | ||
|  |             fixed4 _Color; | ||
|  | 
 | ||
|  |             v2f vert(appdata_t IN) | ||
|  |             { | ||
|  |                 v2f OUT; | ||
|  |                 OUT.vertex = UnityObjectToClipPos(IN.vertex); | ||
|  |                 OUT.texcoord = IN.texcoord; | ||
|  |                 OUT.color = IN.color * _Color; | ||
|  |                 #ifdef PIXELSNAP_ON | ||
|  |                     OUT.vertex = UnityPixelSnap (OUT.vertex); | ||
|  |                 #endif | ||
|  | 
 | ||
|  |                 return OUT; | ||
|  |             } | ||
|  | 
 | ||
|  |             sampler2D _MainTex; | ||
|  |             sampler2D _AlphaTex; | ||
|  |             float _AlphaSplitEnabled; | ||
|  | 
 | ||
|  |             fixed4 SampleSpriteTexture (float2 uv) | ||
|  |             { | ||
|  |                 fixed4 color = tex2D (_MainTex, uv); | ||
|  | 
 | ||
|  |                 #if UNITY_TEXTURE_ALPHASPLIT_ALLOWED | ||
|  |                     if (_AlphaSplitEnabled) | ||
|  |                     color.a = tex2D (_AlphaTex, uv).r; | ||
|  |                 #endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED | ||
|  | 
 | ||
|  |                 return color; | ||
|  |             } | ||
|  | 
 | ||
|  |             fixed4 frag(v2f IN) : SV_Target | ||
|  |             { | ||
|  |                 fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color; | ||
|  |                 c.rgb *= c.a; | ||
|  |                 if(c.a==0){ | ||
|  |                     discard; | ||
|  |                 } | ||
|  |                 return c; | ||
|  |             } | ||
|  |             ENDCG | ||
|  |         } | ||
|  |     } | ||
|  | } |