Advertisement
GeeItSomeLaldy

SpriteColourReplacement Shader

Nov 7th, 2021
660
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.80 KB | None | 0 0
  1. // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
  2.  
  3. Shader "Custom/SpriteColourReplacement"
  4. {
  5.     Properties
  6.     {
  7.         [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
  8.         _Color ("Tint", Color) = (1,1,1,1)
  9.        
  10.         [PerRendererData]
  11.         _R ("R", Color) = (1,0,0,1)
  12.         [PerRendererData]
  13.         _G ("G", Color) = (0,1,0,1)
  14.         [PerRendererData]
  15.         _B ("B", Color) = (0,0,1,1)
  16.         [PerRendererData]
  17.         _C ("C", Color) = (0,1,1,1)
  18.         [PerRendererData]
  19.         _M ("M", Color) = (1,0,1,1)
  20.         [PerRendererData]
  21.         _Y ("Y", Color) = (1,1,0,1)
  22.  
  23.         [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
  24.         [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
  25.         [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1)
  26.         [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}
  27.         [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0
  28.     }
  29.      SubShader
  30.     {
  31.         Tags
  32.         {
  33.             "Queue"="Transparent"
  34.             "IgnoreProjector"="True"
  35.             "RenderType"="Transparent"
  36.             "PreviewType"="Plane"
  37.             "CanUseSpriteAtlas"="True"
  38.         }
  39.  
  40.         Cull Off
  41.         Lighting Off
  42.         ZWrite Off
  43.         Blend One OneMinusSrcAlpha
  44.  
  45.         Pass
  46.         {
  47.         CGPROGRAM
  48.             #pragma vertex SpriteVert
  49.             #pragma fragment frag
  50.             #pragma target 2.0
  51.             #pragma multi_compile_instancing
  52.             #pragma multi_compile_local _ PIXELSNAP_ON
  53.             #pragma multi_compile _ ETC1_EXTERNAL_ALPHA
  54.             #include "UnitySprites.cginc"      
  55.             fixed4 _R;
  56.             fixed4 _G;
  57.             fixed4 _B;
  58.             fixed4 _C;
  59.             fixed4 _M;
  60.             fixed4 _Y;
  61.  
  62.         fixed4 frag (v2f IN) : SV_Target
  63.         {
  64.             fixed4 c = SampleSpriteTexture (IN.texcoord);
  65.             fixed4 cc = c * IN.color;
  66.             if((c.r == 1 || c.r == 0) && (c.g == 1 || c.g == 0) && (c.b == 1 || c.b == 0)) {
  67.                 if(c.r == 1 && c.g == 1 && c.b == 0) {
  68.                     c = _Y;
  69.                 } else if(c.r == 1 && c.g == 0 && c.b == 1) {
  70.                     c = _M;
  71.                 } else if(c.r == 0 && c.g == 1 && c.b == 1) {                
  72.                     c = _C;
  73.                 } else if(c.r == 1 && c.g == 0 && c.b == 0) {
  74.                     c = _R;
  75.                 } else if(c.r == 0 && c.g == 1 && c.b == 0) {
  76.                     c = _G;
  77.                 } else if(c.r == 0 && c.g == 0 && c.b == 1) {
  78.                     c = _B;
  79.                 }
  80.             }
  81.             c *= IN.color;
  82.             c *= cc.a;
  83.             return c;
  84.         }
  85.         ENDCG
  86.         }
  87.     }
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement