Shader  "UI/Unlit/Flowlight" 
{ Properties { [ PerRendererData ]  _MainTex ( "Sprite Texture" ,  2D )  =  "white"  { } _Color ( "Tint" ,  Color )  =  ( 1 ,  1 ,  1 ,  1 ) [ MaterialToggle ]  PixelSnap ( "Pixel snap" ,  float )  =  0 _FlowlightColor ( "Flowlight Color" ,  Color )  =  ( 1 ,  0 ,  0 ,  1 ) _Lengthlitandlar ( "LangthofLittle and Large" ,  range ( 0 , 0.5 ) )  =  0.005 _MoveSpeed ( "MoveSpeed" ,  float )  =  5 _Power ( "Power" ,  float )  =  1 _LargeWidth ( "LargeWidth" ,  range ( 0 , 0.005 ) )  =  0.0035 _LittleWidth ( "LittleWidth" ,  range ( 0 , 0.001 ) )  =  0.002 _WidthRate ( "WidthRate" , float )  =  0 _XOffset ( "XOffset" , float )  =  0 _HeightRate ( "HeightRate" , float )  =  0 _YOffset ( "YOffset" , float )  =  0 _StencilComp ( "Stencil Comparison" ,  Float )  =  8 _Stencil ( "Stencil ID" ,  Float )  =  0 _StencilOp ( "Stencil Operation" ,  Float )  =  0 _StencilWriteMask ( "Stencil Write Mask" ,  Float )  =  255 _StencilReadMask ( "Stencil Read Mask" ,  Float )  =  255 _ColorMask ( "Color Mask" ,  Float )  =  15 [ Toggle ( UNITY_UI_ALPHACLIP ) ]  _UseClipRect ( "Use Clip Rect" ,  Float )  =  0 } SubShader { Tags { "Queue"  =  "Transparent" "IgnoreProjector"  =  "True"  "RenderType"  =  "Transparent" "PreviewType"  =  "Plane" "CanUseSpriteAtlas"  =  "True" } Cull      Off Lighting  Off ZWrite    Off Blend  One  OneMinusSrcAlpha ColorMask [ _ColorMask] Stencil { Ref [ _Stencil] Comp [ _StencilComp] Pass [ _StencilOp] ReadMask [ _StencilReadMask] WriteMask [ _StencilWriteMask] } Pass { 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 ; half2 texcoord :  TEXCOORD0 ; float4 worldPosition:  TEXCOORD1 ; } ; fixed4 _Color; float  _Power; float  _LargeWidth; float  _LittleWidth; float  _Lengthlitandlar; float  _MoveSpeed; fixed4 _FlowlightColor; float  _UVPosX; v2f vert ( appdata_t IN ) { v2f OUT ; OUT . worldPosition =  IN . vertex; OUT . vertex =  UnityObjectToClipPos ( IN . vertex) ; OUT . texcoord =  IN . texcoord; OUT . color =  IN . color *  _Color; #ifdef PIXELSNAP_ON OUT . vertex =  UnityPixelSnap ( OUT . vertex) ; #endifreturn  OUT ; } sampler2D _MainTex; float4 _MainTex_ST; float  _WidthRate; float  _XOffset; float  _HeightRate; float  _YOffset; bool _UseClipRect; float4 _ClipRect; float  _ClipSoftX; float  _ClipSoftY; fixed4 frag ( v2f IN )  :  SV_Target { fixed4 c =  tex2D ( _MainTex,  IN . texcoord) ; if  ( _UseClipRect) { float2 factor =  float2 ( 0.0 ,  0.0 ) ; float2 tempXY =  ( IN . worldPosition. xy -  _ClipRect. xy)  /  float2 ( _ClipSoftX,  _ClipSoftY)  *  step ( _ClipRect. xy,  IN . worldPosition. xy) ; factor =  max ( factor,  tempXY) ; float2 tempZW =  ( _ClipRect. zw -  IN . worldPosition. xy)  /  float2 ( _ClipSoftX,  _ClipSoftY)  *  step ( IN . worldPosition. xy,  _ClipRect. zw) ; factor =  min ( factor,  tempZW) ; c. a *=  clamp ( min ( factor. x,  factor. y) ,  0.0 ,  1.0 ) ; }                 _UVPosX =  _XOffset +  ( fmod ( _Time. x *  _MoveSpeed,  1 )  *  2  -  0.5 ) ;  float  lar =  pow ( 1  -  _LargeWidth *  _WidthRate,  2 ) ; float  lit =  pow ( 1  -  _LittleWidth *  _WidthRate,  2 ) ; fixed4 cadd =  _FlowlightColor *  saturate ( ( 1  -  saturate ( pow ( _UVPosX -  IN . texcoord. x, 2 ) ) )  -  lar)  *  _Power /  ( 1  -  lar) ; cadd +=  _FlowlightColor *  saturate ( ( 1  -  saturate ( pow ( _UVPosX -  _Lengthlitandlar *  _WidthRate -  IN . texcoord. x,  2 ) ) )  -  lit)  *  _Power /  ( 1  -  lit) ; c. rgb +=  cadd. rgb; c. rgb *=  c. a; return  c; } ENDCG } } 
}