Advertisement
Guest User

Slider shader

a guest
Aug 18th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "Johnny/SliderDrawer"
  4. {
  5.     Properties
  6.     {
  7.         [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
  8.         _Color ("Tint", Color) = (1,1,1,1)
  9.        
  10.         _StencilComp ("Stencil Comparison", Float) = 8
  11.         _Stencil ("Stencil ID", Float) = 0
  12.         _StencilOp ("Stencil Operation", Float) = 0
  13.         _StencilWriteMask ("Stencil Write Mask", Float) = 255
  14.         _StencilReadMask ("Stencil Read Mask", Float) = 255
  15.  
  16.         _ColorMask ("Color Mask", Float) = 15
  17.  
  18.         [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
  19.         _FillRate("FillRate", Range( 0 , 1)) = 0
  20.         _FIllColor("FIllColor", Color) = (0,0,0,0)
  21.         _GhostFillRate("GhostFillRate", Range( 0 , 1)) = 0.9515373
  22.         _ghostTextureBlend("ghostTextureBlend", Range( 0 , 1)) = 0
  23.         _GhostColor("Ghost Color", Color) = (1,1,1,1)
  24.         _backGroundTextureBlend("backGroundTextureBlend", Range( 0 , 1)) = 0
  25.         _BackGroundColor("BackGroundColor", Color) = (0,0,0,1)
  26.         _flashAmount("flashAmount", Range( 0 , 1)) = 0
  27.     }
  28.  
  29.     SubShader
  30.     {
  31.         Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
  32.        
  33.         Stencil
  34.         {
  35.             Ref [_Stencil]
  36.             ReadMask [_StencilReadMask]
  37.             WriteMask [_StencilWriteMask]
  38.             CompFront [_StencilComp]
  39.             PassFront [_StencilOp]
  40.             FailFront Keep
  41.             ZFailFront Keep
  42.             CompBack Always
  43.             PassBack Keep
  44.             FailBack Keep
  45.             ZFailBack Keep
  46.         }
  47.  
  48.  
  49.         Cull Off
  50.         Lighting Off
  51.         ZWrite Off
  52.         ZTest LEqual
  53.         Blend SrcAlpha OneMinusSrcAlpha
  54.         ColorMask [_ColorMask]
  55.  
  56.        
  57.         Pass
  58.         {
  59.             Name "Default"
  60.         CGPROGRAM
  61.             #pragma vertex vert
  62.             #pragma fragment frag
  63.             #pragma target 3.0
  64.  
  65.             #include "UnityCG.cginc"
  66.             #include "UnityUI.cginc"
  67.  
  68.             #pragma multi_compile __ UNITY_UI_CLIP_RECT
  69.             #pragma multi_compile __ UNITY_UI_ALPHACLIP
  70.            
  71.            
  72.            
  73.             struct appdata_t
  74.             {
  75.                 float4 vertex   : POSITION;
  76.                 float4 color    : COLOR;
  77.                 float2 texcoord : TEXCOORD0;
  78.                 UNITY_VERTEX_INPUT_INSTANCE_ID
  79.                
  80.             };
  81.  
  82.             struct v2f
  83.             {
  84.                 float4 vertex   : SV_POSITION;
  85.                 fixed4 color    : COLOR;
  86.                 half2 texcoord  : TEXCOORD0;
  87.                 float4 worldPosition : TEXCOORD1;
  88.                 UNITY_VERTEX_INPUT_INSTANCE_ID
  89.                 UNITY_VERTEX_OUTPUT_STEREO
  90.                
  91.             };
  92.            
  93.             uniform fixed4 _Color;
  94.             uniform fixed4 _TextureSampleAdd;
  95.             uniform float4 _ClipRect;
  96.             uniform sampler2D _MainTex;
  97.             uniform float4 _MainTex_ST;
  98.             uniform float4 _FIllColor;
  99.             uniform float _flashAmount;
  100.             uniform float _FillRate;
  101.             uniform float4 _GhostColor;
  102.             uniform float _GhostFillRate;
  103.             uniform float _ghostTextureBlend;
  104.             uniform float4 _BackGroundColor;
  105.             uniform float _backGroundTextureBlend;
  106.            
  107.             v2f vert( appdata_t IN  )
  108.             {
  109.                 v2f OUT;
  110.                 UNITY_SETUP_INSTANCE_ID( IN );
  111.                 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
  112.                 UNITY_TRANSFER_INSTANCE_ID(IN, OUT);
  113.                 OUT.worldPosition = IN.vertex;
  114.                
  115.                
  116.                 OUT.worldPosition.xyz +=  float3( 0, 0, 0 ) ;
  117.                 OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
  118.  
  119.                 OUT.texcoord = IN.texcoord;
  120.                
  121.                 OUT.color = IN.color * _Color;
  122.                 return OUT;
  123.             }
  124.  
  125.             fixed4 frag(v2f IN  ) : SV_Target
  126.             {
  127.                 float2 uv0_MainTex = IN.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
  128.                 float4 tex2DNode2 = tex2D( _MainTex, uv0_MainTex );
  129.                 float4 color111 = IsGammaSpace() ? float4(1,1,1,1) : float4(1,1,1,1);
  130.                 float4 lerpResult110 = lerp( _FIllColor , color111 , _flashAmount);
  131.                 float2 uv027 = IN.texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  132.                 float clampResult74 = clamp( floor( ( ( _FillRate + 1.0 ) - uv027.x ) ) , 0.0 , 1.0 );
  133.                 float fillMask70 = clampResult74;
  134.                 float alphaMask89 = tex2DNode2.a;
  135.                 float4 appendResult96 = (float4(_GhostColor.r , _GhostColor.g , _GhostColor.b , alphaMask89));
  136.                 float clampResult75 = clamp( floor( ( ( _GhostFillRate + 1.0 ) - uv027.x ) ) , 0.0 , 1.0 );
  137.                 float ghostMask71 = ( clampResult75 - clampResult74 );
  138.                 float4 fillTexture100 = tex2DNode2;
  139.                 float4 lerpResult103 = lerp( ( appendResult96 * ghostMask71 ) , ( fillTexture100 * ghostMask71 ) , _ghostTextureBlend);
  140.                 float4 appendResult92 = (float4(_BackGroundColor.r , _BackGroundColor.g , _BackGroundColor.b , alphaMask89));
  141.                 float backgroundMask79 = ( 1.0 - ( fillMask70 + ghostMask71 ) );
  142.                 float4 lerpResult99 = lerp( ( appendResult92 * backgroundMask79 ) , ( backgroundMask79 * fillTexture100 ) , _backGroundTextureBlend);
  143.                
  144.                 half4 color = ( ( tex2DNode2 * lerpResult110 * fillMask70 ) + lerpResult103 + lerpResult99 );
  145.                
  146.                 #ifdef UNITY_UI_CLIP_RECT
  147.                 color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
  148.                 #endif
  149.                
  150.                 #ifdef UNITY_UI_ALPHACLIP
  151.                 clip (color.a - 0.001);
  152.                 #endif
  153.  
  154.                 return color;
  155.             }
  156.         ENDCG
  157.         }
  158.     }
  159.    
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement