Shader "EffectShader/AlphaBlendUvflow"
|
{
|
Properties
|
{
|
[Enum(UnityEngine.Rendering.CullMode)]_CullMode("CullMode", Float) = 0
|
_MianTex("MianTex", 2D) = "white" {}
|
_X("X", Float) = 1
|
_Y("Y", Float) = 0
|
_MaskTex("MaskTex", 2D) = "white" {}
|
_MaskX("MaskX", Float) = 1
|
_MaskY("MaskY", Float) = 0
|
[HDR]_Color0("Color 0", Color) = (1,1,1,1)
|
}
|
|
SubShader
|
{
|
|
|
Tags { "RenderType"="Transparent" "Queue"="Transparent" }
|
LOD 100
|
|
CGINCLUDE
|
#pragma target 3.0
|
ENDCG
|
Blend SrcAlpha OneMinusSrcAlpha
|
Cull [_CullMode]
|
ColorMask RGBA
|
ZWrite Off
|
ZTest LEqual
|
|
|
|
Pass
|
{
|
Name "Unlit"
|
|
CGPROGRAM
|
#pragma vertex vert
|
#pragma fragment frag
|
#pragma multi_compile_instancing
|
#include "UnityCG.cginc"
|
#include "UnityShaderVariables.cginc"
|
|
|
struct appdata
|
{
|
float4 vertex : POSITION;
|
float4 color : COLOR;
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
float4 ase_texcoord : TEXCOORD0;
|
};
|
|
struct v2f
|
{
|
float4 vertex : SV_POSITION;
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
UNITY_VERTEX_OUTPUT_STEREO
|
float4 ase_texcoord : TEXCOORD0;
|
float4 ase_color : COLOR;
|
};
|
|
uniform float _CullMode;
|
uniform sampler2D _MianTex;
|
uniform half _X;
|
uniform half _Y;
|
uniform float4 _MianTex_ST;
|
uniform sampler2D _MaskTex;
|
uniform half _MaskX;
|
uniform half _MaskY;
|
uniform float4 _MaskTex_ST;
|
uniform float4 _Color0;
|
|
v2f vert ( appdata v )
|
{
|
v2f o;
|
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
|
o.ase_texcoord.xy = v.ase_texcoord.xy;
|
o.ase_color = v.color;
|
|
//setting value to unused interpolator channels and avoid initialization warnings
|
o.ase_texcoord.zw = 0;
|
float3 vertexValue = float3(0,0,0) ;
|
#if ASE_ABSOLUTE_VERTEX_POS
|
v.vertex.xyz = vertexValue;
|
#else
|
v.vertex.xyz += vertexValue;
|
#endif
|
o.vertex = UnityObjectToClipPos(v.vertex);
|
return o;
|
}
|
|
fixed4 frag (v2f i ) : SV_Target
|
{
|
UNITY_SETUP_INSTANCE_ID(i);
|
fixed4 finalColor;
|
float2 appendResult11 = (float2(_X , _Y));
|
float2 uv0_MianTex = i.ase_texcoord.xy * _MianTex_ST.xy + _MianTex_ST.zw;
|
float2 panner19 = ( _Time.y * appendResult11 + uv0_MianTex);
|
float4 tex2DNode2 = tex2D( _MianTex, panner19 );
|
float2 appendResult25 = (float2(_MaskX , _MaskY));
|
float2 uv0_MaskTex = i.ase_texcoord.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
|
float2 panner26 = ( _Time.y * appendResult25 + uv0_MaskTex);
|
float4 tex2DNode20 = tex2D( _MaskTex, panner26 );
|
|
|
finalColor = ( ( tex2DNode2 * tex2DNode2.a * tex2DNode20.r * tex2DNode20.a ) * _Color0 * _Color0.a * i.ase_color * i.ase_color.a );
|
return finalColor;
|
}
|
ENDCG
|
}
|
}
|
CustomEditor "ASEMaterialInspector"
|
|
|
}
|