Shader "Unlit/XuanKuang" { Properties { [HDR]_MainCol("MainCol",color) = (1,1,1,1) [HDR]_FlowCol("FlowCol",color)= (1,1,1,1) _FlowTex("FlowTex",2D)= "white" {} _FlowSpeed("FlowSpeed",Vector)= (0, 0,0, 0) } SubShader { Cull Off ZTest Off ZWrite Off Blend SrcAlpha OneMinusSrcAlpha Tags {"Queue"= "Transparent" "RenderType"="Transparent" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float4 color : COLOR; float2 uv:TEXCOORD0; }; struct v2f { float4 color: TEXCOORD0; float4 vertex : SV_POSITION; float2 uv:TEXCOORD1; }; half4 _MainCol, _FlowCol; sampler2D _FlowTex; float4 _FlowTex_ST; float4 _FlowSpeed; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.color = v.color; o.uv = TRANSFORM_TEX(v.uv, _FlowTex); o.uv += _Time.y * float2(_FlowSpeed.x, _FlowSpeed.y); return o; } half4 frag(v2f i) : SV_Target { // sample the texture half4 col = half4(_MainCol.rgb,_MainCol.a*i.color.a); half4 flowCol = tex2D(_FlowTex, i.uv) * _FlowCol* i.color.r; half4 finalCol = half4(col.rgb + flowCol.rgb, min(1, (col.a + i.color.r))* i.color.a); return finalCol; } ENDCG } } }