Advertisement
Guest User

Shader Code Unity

a guest
Mar 8th, 2025
56
0
83 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.18 KB | Source Code | 0 0
  1. Shader "Custom/XPBarShader_Stencil_UI"
  2. {
  3.     Properties
  4.     {
  5.         _MainTex ("Texture", 2D) = "white" {}
  6.         _Color ("Tint", Color) = (1,1,1,1)
  7.  
  8.         _StencilComp ("Stencil Comparison", Float) = 8
  9.         _Stencil ("Stencil ID", Float) = 0
  10.         _StencilOp ("Stencil Operation", Float) = 0
  11.         _StencilWriteMask ("Stencil Write Mask", Float) = 255
  12.         _StencilReadMask ("Stencil Read Mask", Float) = 255
  13.  
  14.         _ColorMask ("Color Mask", Float) = 15
  15.  
  16.         [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
  17.     }
  18.  
  19.     SubShader
  20.     {
  21.         Tags
  22.         {
  23.             "Queue"="Transparent"
  24.             "IgnoreProjector"="True"
  25.             "RenderType"="Transparent"
  26.             "PreviewType"="Plane"
  27.             "CanUseSpriteAtlas"="True"
  28.         }
  29.  
  30.         Stencil
  31.         {
  32.             Ref [_Stencil]
  33.             Comp [_StencilComp]
  34.             Pass [_StencilOp]
  35.             ReadMask [_StencilReadMask]
  36.             WriteMask [_StencilWriteMask]
  37.         }
  38.  
  39.         Cull Off
  40.         Lighting Off
  41.         ZWrite Off
  42.         ZTest [unity_GUIZTestMode]
  43.         Blend SrcAlpha OneMinusSrcAlpha
  44.         ColorMask [_ColorMask]
  45.  
  46.         Pass
  47.         {
  48.             Name "Default"
  49.         CGPROGRAM
  50.             #pragma vertex vert
  51.             #pragma fragment frag
  52.             #pragma target 2.0
  53.  
  54.             #include "UnityCG.cginc"
  55.             #include "UnityUI.cginc"
  56.  
  57.             #pragma multi_compile_local _ UNITY_UI_CLIP_RECT
  58.             #pragma multi_compile_local _ UNITY_UI_ALPHACLIP
  59.  
  60.             struct appdata_t
  61.             {
  62.                 float4 vertex   : POSITION;
  63.                 float4 color    : COLOR;
  64.                 float2 texcoord : TEXCOORD0;
  65.                 UNITY_VERTEX_INPUT_INSTANCE_ID
  66.             };
  67.  
  68.             struct v2f
  69.             {
  70.                 float4 vertex   : SV_POSITION;
  71.                 fixed4 color    : COLOR;
  72.                 float2 texcoord  : TEXCOORD0;
  73.                 float4 worldPosition : TEXCOORD1;
  74.                 UNITY_VERTEX_OUTPUT_STEREO
  75.             };
  76.  
  77.             sampler2D _MainTex;
  78.             fixed4 _Color;
  79.             fixed4 _TextureSampleAdd;
  80.             float4 _ClipRect;
  81.             float4 _MainTex_ST;
  82.  
  83.             v2f vert(appdata_t v)
  84.             {
  85.                 v2f OUT;
  86.                 UNITY_SETUP_INSTANCE_ID(v);
  87.                 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
  88.                 OUT.worldPosition = v.vertex;
  89.                 OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
  90.  
  91.                 OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
  92.  
  93.                 OUT.color = v.color * _Color;
  94.                 return OUT;
  95.             }
  96.  
  97.             fixed4 frag(v2f IN) : SV_Target
  98.             {
  99.                 half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
  100.  
  101.                 #ifdef UNITY_UI_CLIP_RECT
  102.                 color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
  103.                 #endif
  104.  
  105.                 #ifdef UNITY_UI_ALPHACLIP
  106.                 clip (color.a - 0.001);
  107.                 #endif
  108.  
  109.                 return color;
  110.             }
  111.         ENDCG
  112.         }
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement