Skip to main content
deleted 142 characters in body
Source Link
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5


        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _LerpValue1("_LerpValue1",Range(0,1)) = 0
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _LerpValue2("_LerpValue2",Range(0,1)) = 0
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _LerpValue3("_LerpValue3",Range(0,1)) = 0
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _LerpValue4("_LerpValue4",Range(0,1)) = 0
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _LerpValue5("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _LerpValue6("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
        _LerpValue7("_LerpValue6",Range(0,1)) = 0

       


    }
 
    SubShader
    {
Tags {"Queue" = "Transparent"} ZWrite Off  Blend SrcAlpha OneMinusSrcAlpha
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;



            uniform float _LerpValue1;
            uniform float _LerpValue2;
            uniform float _LerpValue3;
            uniform float _LerpValue4;
            uniform float _LerpValue5;
            uniform float _LerpValue6;
            uniform float _LerpValue7;

            float _LerpValue;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                 if(_color.a<=0.15){
                    return half4(0,0,0,0);
                }

                 float4 transparent = float4(0,0,0,0);
                   float4 Red = lerp(_ColorReplacement1,transparent,smoothstep(0,_LerpValue1,dis(_Red)));
                   float4 Green = lerp(_ColorReplacement2,transparent,smoothstep(0,_LerpValue2,dis(_Green)));
                   float4 Blue = lerp(_ColorReplacement3,transparent,smoothstep(0,_LerpValue3,dis(_Blue)));
                   float4 Yellow = lerp(_ColorReplacement4,transparent,smoothstep(0,_LerpValue4,dis(_Yellow)));
                   float4 Purple = lerp(_ColorReplacement5,transparent,smoothstep(0,_LerpValue5,dis(_Purple)));
                   float4 Cyan = lerp(_ColorReplacement6,transparent,smoothstep(0,_LerpValue6,dis(_Cyan)));
                   float4 White = lerp(_ColorReplacement7,transparent,smoothstep(0,_LerpValue7,dis(_White)));

                   return _color + (Green + Red + Blue + Yellow + Purple + Cyan + White);
            }
            ENDCG
        }
    }
}
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5


        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _LerpValue1("_LerpValue1",Range(0,1)) = 0
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _LerpValue2("_LerpValue2",Range(0,1)) = 0
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _LerpValue3("_LerpValue3",Range(0,1)) = 0
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _LerpValue4("_LerpValue4",Range(0,1)) = 0
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _LerpValue5("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _LerpValue6("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
        _LerpValue7("_LerpValue6",Range(0,1)) = 0

       


    }
    SubShader
    {
Tags {"Queue" = "Transparent"} ZWrite Off  Blend SrcAlpha OneMinusSrcAlpha
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;



            uniform float _LerpValue1;
            uniform float _LerpValue2;
            uniform float _LerpValue3;
            uniform float _LerpValue4;
            uniform float _LerpValue5;
            uniform float _LerpValue6;
            uniform float _LerpValue7;

            float _LerpValue;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                 if(_color.a<=0.15){
                    return half4(0,0,0,0);
                }

                 float4 transparent = float4(0,0,0,0);
                   float4 Red = lerp(_ColorReplacement1,transparent,smoothstep(0,_LerpValue1,dis(_Red)));
                   float4 Green = lerp(_ColorReplacement2,transparent,smoothstep(0,_LerpValue2,dis(_Green)));
                   float4 Blue = lerp(_ColorReplacement3,transparent,smoothstep(0,_LerpValue3,dis(_Blue)));
                   float4 Yellow = lerp(_ColorReplacement4,transparent,smoothstep(0,_LerpValue4,dis(_Yellow)));
                   float4 Purple = lerp(_ColorReplacement5,transparent,smoothstep(0,_LerpValue5,dis(_Purple)));
                   float4 Cyan = lerp(_ColorReplacement6,transparent,smoothstep(0,_LerpValue6,dis(_Cyan)));
                   float4 White = lerp(_ColorReplacement7,transparent,smoothstep(0,_LerpValue7,dis(_White)));

                   return _color + (Green + Red + Blue + Yellow + Purple + Cyan + White);
            }
            ENDCG
        }
    }
}
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}


        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _LerpValue1("_LerpValue1",Range(0,1)) = 0
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _LerpValue2("_LerpValue2",Range(0,1)) = 0
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _LerpValue3("_LerpValue3",Range(0,1)) = 0
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _LerpValue4("_LerpValue4",Range(0,1)) = 0
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _LerpValue5("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _LerpValue6("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
        _LerpValue7("_LerpValue6",Range(0,1)) = 0
    }
 
    SubShader
    {
Tags {"Queue" = "Transparent"} ZWrite Off  Blend SrcAlpha OneMinusSrcAlpha
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;



            uniform float _LerpValue1;
            uniform float _LerpValue2;
            uniform float _LerpValue3;
            uniform float _LerpValue4;
            uniform float _LerpValue5;
            uniform float _LerpValue6;
            uniform float _LerpValue7;

            float _LerpValue;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                 if(_color.a<=0.15){
                    return half4(0,0,0,0);
                }

                 float4 transparent = float4(0,0,0,0);
                   float4 Red = lerp(_ColorReplacement1,transparent,smoothstep(0,_LerpValue1,dis(_Red)));
                   float4 Green = lerp(_ColorReplacement2,transparent,smoothstep(0,_LerpValue2,dis(_Green)));
                   float4 Blue = lerp(_ColorReplacement3,transparent,smoothstep(0,_LerpValue3,dis(_Blue)));
                   float4 Yellow = lerp(_ColorReplacement4,transparent,smoothstep(0,_LerpValue4,dis(_Yellow)));
                   float4 Purple = lerp(_ColorReplacement5,transparent,smoothstep(0,_LerpValue5,dis(_Purple)));
                   float4 Cyan = lerp(_ColorReplacement6,transparent,smoothstep(0,_LerpValue6,dis(_Cyan)));
                   float4 White = lerp(_ColorReplacement7,transparent,smoothstep(0,_LerpValue7,dis(_White)));

                   return _color + (Green + Red + Blue + Yellow + Purple + Cyan + White);
            }
            ENDCG
        }
    }
}
Optimize code
Source Link
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5
 

        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _LerpValue1("_LerpValue1",Range(0,1)) = 0
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _LerpValue2("_LerpValue2",Range(0,1)) = 0
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _LerpValue3("_LerpValue3",Range(0,1)) = 0
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _LerpValue4("_LerpValue4",Range(0,1)) = 0
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _LerpValue5("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _LerpValue6("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
        _LerpValue7("_LerpValue6",Range(0,1)) = 0

       


    }
    SubShader
    {
  Tags {"Queue" = "Transparent"} ZWrite Off Tags {Blend "RenderType"="Opaque"SrcAlpha }OneMinusSrcAlpha
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;
 


            uniform float _LerpValue1;
            uniform float _LerpValue2;
            uniform float _LerpValue3;
            uniform float _LerpValue4;
            uniform float _LerpValue5;
            uniform float _LerpValue6;
            uniform float _LerpValue7;

            float _LerpValue;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                if(dis(_Red)<=_TH){
                    return  _ColorReplacement1;
                }
                if(dis(_Green)<=_TH){
                    return  _ColorReplacement2;
                }
                if(dis(_Blue)<=_TH){
                    return _ColorReplacement3;
                }
                if(dis(_Yellow)<=_TH){
                    return  _ColorReplacement4;
                }
                if(dis(_Purple)<=_TH){
                    return _ColorReplacement5;
                }
                if(dis(_Cyan)<=_TH_color.a<=0.15){
                    return _ColorReplacement6;
                }
                if(dishalf4(_White)<=_TH0,0,0,0){
                    return _ColorReplacement7;;
                }
 
                return float4 transparent = float4(_color.rgb0,10,0,0);
                   float4 Red = lerp(_ColorReplacement1,transparent,smoothstep(0,_LerpValue1,dis(_Red)));
                   float4 Green = lerp(_ColorReplacement2,transparent,smoothstep(0,_LerpValue2,dis(_Green)));
                   float4 Blue = lerp(_ColorReplacement3,transparent,smoothstep(0,_LerpValue3,dis(_Blue)));
                   float4 Yellow = lerp(_ColorReplacement4,transparent,smoothstep(0,_LerpValue4,dis(_Yellow)));
                   float4 Purple = lerp(_ColorReplacement5,transparent,smoothstep(0,_LerpValue5,dis(_Purple)));
                   float4 Cyan = lerp(_ColorReplacement6,transparent,smoothstep(0,_LerpValue6,dis(_Cyan)));
                   float4 White = lerp(_ColorReplacement7,transparent,smoothstep(0,_LerpValue7,dis(_White)));

                   return _color + (Green + Red + Blue + Yellow + Purple + Cyan + White);
            }
            ENDCG
        }
    }
}
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5
        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White


    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                if(dis(_Red)<=_TH){
                    return  _ColorReplacement1;
                }
                if(dis(_Green)<=_TH){
                    return  _ColorReplacement2;
                }
                if(dis(_Blue)<=_TH){
                    return _ColorReplacement3;
                }
                if(dis(_Yellow)<=_TH){
                    return  _ColorReplacement4;
                }
                if(dis(_Purple)<=_TH){
                    return _ColorReplacement5;
                }
                if(dis(_Cyan)<=_TH){
                    return _ColorReplacement6;
                }
                if(dis(_White)<=_TH){
                    return _ColorReplacement7;
                }
                return  float4(_color.rgb,1);
            }
            ENDCG
        }
    }
}
Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5
 

        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _LerpValue1("_LerpValue1",Range(0,1)) = 0
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _LerpValue2("_LerpValue2",Range(0,1)) = 0
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _LerpValue3("_LerpValue3",Range(0,1)) = 0
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _LerpValue4("_LerpValue4",Range(0,1)) = 0
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _LerpValue5("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _LerpValue6("_LerpValue5",Range(0,1)) = 0
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
        _LerpValue7("_LerpValue6",Range(0,1)) = 0

       


    }
    SubShader
    {
Tags {"Queue" = "Transparent"} ZWrite Off  Blend SrcAlpha OneMinusSrcAlpha
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;
 


            uniform float _LerpValue1;
            uniform float _LerpValue2;
            uniform float _LerpValue3;
            uniform float _LerpValue4;
            uniform float _LerpValue5;
            uniform float _LerpValue6;
            uniform float _LerpValue7;

            float _LerpValue;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);

                 if(_color.a<=0.15){
                    return half4(0,0,0,0);
                }
 
                 float4 transparent = float4(0,0,0,0);
                   float4 Red = lerp(_ColorReplacement1,transparent,smoothstep(0,_LerpValue1,dis(_Red)));
                   float4 Green = lerp(_ColorReplacement2,transparent,smoothstep(0,_LerpValue2,dis(_Green)));
                   float4 Blue = lerp(_ColorReplacement3,transparent,smoothstep(0,_LerpValue3,dis(_Blue)));
                   float4 Yellow = lerp(_ColorReplacement4,transparent,smoothstep(0,_LerpValue4,dis(_Yellow)));
                   float4 Purple = lerp(_ColorReplacement5,transparent,smoothstep(0,_LerpValue5,dis(_Purple)));
                   float4 Cyan = lerp(_ColorReplacement6,transparent,smoothstep(0,_LerpValue6,dis(_Cyan)));
                   float4 White = lerp(_ColorReplacement7,transparent,smoothstep(0,_LerpValue7,dis(_White)));

                   return _color + (Green + Red + Blue + Yellow + Purple + Cyan + White);
            }
            ENDCG
        }
    }
}
Improve answer
Source Link

RGB ColorFul

ColorReplacement

    Shader "Smkgames"SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _FilterColor_TH("Threshold value",Range(0,1)) = 0.5
        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color"Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        _TH[HideInInspector]_Blue("Threshold"Filter value"Color 3",Range Color) = (-0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        _newColor[HideInInspector]_Purple("new"Filter Color"Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
    }    [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


    SubShader    _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
    {    _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        Tags_ColorReplacement3("Blue", {Color) "RenderType"="Transparent"= "Queue"="Transparent"(0,0,1.0,1.0) }//Blue
        LOD_ColorReplacement4("Yellow", 100Color) = (1.0,1.0,0,1.0) //Yellow
        Blend_ColorReplacement5("Purple", SrcAlphaColor) OneMinusSrcAlpha= (1.0,0,1.0,1.0) //Purple
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White


    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag 

            #include "UnityCG.cginc"

            #includeuniform "UnityCG.cginc"sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _FilterColor;_Red;
            uniform sampler2Dfloat4 _MainTex;_Green;
            uniform float4 _MainTex_ST;_Blue;
            uniform float4 _newColor;_Yellow;
            uniform float4 _Purple;
            structuniform appdatafloat4 _Cyan;
            {uniform float4 _White;

            //Colors Replacement
            uniform float4 vertex_ColorReplacement1;
 : POSITION;          uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
  float2 uv : TEXCOORD0;       uniform float4 _ColorReplacement4;
            };uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;


            struct v2fappdata
            {
                float2float4 uvvertex : TEXCOORD0;POSITION;
                float4float2 vertexuv : SV_POSITION;TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv;uv, _MainTex);
                return o;
            }

    return o;       half dis(float4 c){
            }half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            half4}

 frag (v2f i) : Color
       fixed4 frag (v2f i) : {Color
            {
                half4 color_color = tex2D(_MainTex, i.uv);
  
               half dis=if(powdis(color.r-_FilterColor.r,2.0_Red)+pow(color.g-_FilterColor.g,2.0<=_TH)+pow{
                    return  _ColorReplacement1;
                }
                if(color.b-_FilterColor.b,2.0dis(_Green)<=_TH);{
                    return  _ColorReplacement2;
                }
                if(color.a<=0.15dis(_Blue)<=_TH){
                    return half4_ColorReplacement3;
                }
                if(0,0,0,0dis(_Yellow);<=_TH){
             }       return  _ColorReplacement4;
                }
                if(dis(_Purple)<=_TH){
                    return lerp(_newColor,color,smoothstep_ColorReplacement5;
                }
                if(_TH,1,dis(_Cyan)<=_TH);{
                //    return lerp_ColorReplacement6;
                }
                if(_newColor,color,smoothstepdis(_TH_White)<=_TH){
                    return _ColorReplacement7;
                }
                return  float4(_color.rgb,1,dis));
            }
            ENDCG
        }
    }
}

useful links: Chroma Key Shader 2 , Chroma Key Shader 1


Here Is the Chroma Key Shader for pixel art sprites

RGB ColorFul

color replacement by chroma key technique

   Shader "SmkGames/ColorReplacement"
    {
        Properties
        {
            _MainTex ("Texture", 2D) = "white" {}
            _TH("Threshold value",Range(0,1)) = 0.5
    
            [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
            [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
            [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
            [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
            [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
            [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
            [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan
    
            _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
            _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
            _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
            _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
            _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
            _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
            _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
    
    
        }
        SubShader
        {
            Tags { "RenderType"="Opaque" }
            LOD 100
    
            Pass
            {
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
    
                #include "UnityCG.cginc"
    
                uniform sampler2D _MainTex;
                uniform float4 _MainTex_ST;
    
                uniform float _TH; //Threshold value
    
                //MainColors
                uniform float4 _Red;
                uniform float4 _Green;
                uniform float4 _Blue;
                uniform float4 _Yellow;
                uniform float4 _Purple;
                uniform float4 _Cyan;
                uniform float4 _White;
    
                //Colors Replacement
                uniform float4 _ColorReplacement1;
                uniform float4 _ColorReplacement2;
                uniform float4 _ColorReplacement3;
                uniform float4 _ColorReplacement4;
                uniform float4 _ColorReplacement5;
                uniform float4 _ColorReplacement6;
                uniform float4 _ColorReplacement7;
    
    
                struct appdata
                {
                    float4 vertex : POSITION;
                    float2 uv : TEXCOORD0;
                };
    
                struct v2f
                {
                    float2 uv : TEXCOORD0;
                    float4 vertex : SV_POSITION;
                };
    
    
    
                v2f vert (appdata v)
                {
                    v2f o;
                    o.vertex = UnityObjectToClipPos(v.vertex);
                    o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                    return o;
                }
    
                fixed4 frag (v2f i) : Color
                {
                    fixed4 color = tex2D(_MainTex, i.uv);
                    if(distance(color,_Red)<=_TH){
                        return  _ColorReplacement1;
                    }
                    if(distance(color,_Green)<=_TH){
                        return  _ColorReplacement2;
                    }
                    if(distance(color,_Blue)<=_TH){
                        return _ColorReplacement3;
                    }
                    if(distance(color,_Yellow)<=_TH){
                        return  _ColorReplacement4;
                    }
                    if(distance(color,_Purple)<=_TH){
                        return _ColorReplacement5;
                    }
                    if(distance(color,_Cyan)<=_TH){
                        return _ColorReplacement6;
                    }
                    if(distance(color,_White)<=_TH){
                        return _ColorReplacement7;
                    }
                    return  float4(color.rgb,1);
                }
                ENDCG
            }
        }
    }

ColorReplacement

    Shader "Smkgames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _FilterColor("Filter Color", Color) = (1.0,1.0,1.0,1.0)
        _TH("Threshold value",Range(-1,1)) = 1
        _newColor("new Color",Color) =(1.0,1.0,1.0,1.0)
    }
    SubShader
    {
        Tags { "RenderType"="Transparent" "Queue"="Transparent" }
        LOD 100
        Blend SrcAlpha OneMinusSrcAlpha
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            
            #include "UnityCG.cginc"

            
            uniform float _TH;
            uniform float4 _FilterColor;
            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            uniform float4 _newColor;

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            
            
            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = v.uv;
                
                return o;
            }
            
            half4 frag (v2f i) : Color
            {
            
                half4 color = tex2D(_MainTex, i.uv);
                half dis=(pow(color.r-_FilterColor.r,2.0)+pow(color.g-_FilterColor.g,2.0)+pow(color.b-_FilterColor.b,2.0));
                
                if(color.a<=0.15){
                    return half4(0,0,0,0);
             }

                
                return lerp(_newColor,color,smoothstep(_TH,1,dis));
                //return lerp(_newColor,color,smoothstep(_TH,1,dis));
            }
            ENDCG
        }
    }
}

useful links: Chroma Key Shader 2 , Chroma Key Shader 1


Here Is the Chroma Key Shader for pixel art sprites

RGB ColorFul

color replacement by chroma key technique

   Shader "SmkGames/ColorReplacement"
    {
        Properties
        {
            _MainTex ("Texture", 2D) = "white" {}
            _TH("Threshold value",Range(0,1)) = 0.5
    
            [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
            [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
            [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
            [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
            [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
            [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
            [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan
    
            _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
            _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
            _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
            _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
            _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
            _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
            _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White
    
    
        }
        SubShader
        {
            Tags { "RenderType"="Opaque" }
            LOD 100
    
            Pass
            {
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
    
                #include "UnityCG.cginc"
    
                uniform sampler2D _MainTex;
                uniform float4 _MainTex_ST;
    
                uniform float _TH; //Threshold value
    
                //MainColors
                uniform float4 _Red;
                uniform float4 _Green;
                uniform float4 _Blue;
                uniform float4 _Yellow;
                uniform float4 _Purple;
                uniform float4 _Cyan;
                uniform float4 _White;
    
                //Colors Replacement
                uniform float4 _ColorReplacement1;
                uniform float4 _ColorReplacement2;
                uniform float4 _ColorReplacement3;
                uniform float4 _ColorReplacement4;
                uniform float4 _ColorReplacement5;
                uniform float4 _ColorReplacement6;
                uniform float4 _ColorReplacement7;
    
    
                struct appdata
                {
                    float4 vertex : POSITION;
                    float2 uv : TEXCOORD0;
                };
    
                struct v2f
                {
                    float2 uv : TEXCOORD0;
                    float4 vertex : SV_POSITION;
                };
    
    
    
                v2f vert (appdata v)
                {
                    v2f o;
                    o.vertex = UnityObjectToClipPos(v.vertex);
                    o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                    return o;
                }
    
                fixed4 frag (v2f i) : Color
                {
                    fixed4 color = tex2D(_MainTex, i.uv);
                    if(distance(color,_Red)<=_TH){
                        return  _ColorReplacement1;
                    }
                    if(distance(color,_Green)<=_TH){
                        return  _ColorReplacement2;
                    }
                    if(distance(color,_Blue)<=_TH){
                        return _ColorReplacement3;
                    }
                    if(distance(color,_Yellow)<=_TH){
                        return  _ColorReplacement4;
                    }
                    if(distance(color,_Purple)<=_TH){
                        return _ColorReplacement5;
                    }
                    if(distance(color,_Cyan)<=_TH){
                        return _ColorReplacement6;
                    }
                    if(distance(color,_White)<=_TH){
                        return _ColorReplacement7;
                    }
                    return  float4(color.rgb,1);
                }
                ENDCG
            }
        }
    }

RGB ColorFul

ColorReplacement

Shader "SmkGames/ColorReplacement"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _TH("Threshold value",Range(0,1)) = 0.5
        [HideInInspector] _color("Color", Color) = (1.0,1.0,1.0,1.0)

        [HideInInspector]_Red("Filter Color 1", Color) = (1.0,0,0,1.0) //Red
        [HideInInspector]_Green("Filter Color 2", Color) = (0,1.0,0,1.0) //Green
        [HideInInspector]_Blue("Filter Color 3", Color) = (0,0,1.0,1.0) //Blue
        [HideInInspector]_Yellow("Filter Color 4", Color) = (1.0,1.0,0,1.0) //Yellow
        [HideInInspector]_Purple("Filter Color 5", Color) = (1.0,0,1.0,1.0) //Purple
        [HideInInspector]_Cyan("Filter Color 6", Color) = (0,1.0,1.0,1.0) //Cyan
        [HideInInspector]_White("Filter Color 7", Color) = (1.0,1.0,1.0,1.0) //Cyan


        _ColorReplacement1("Red", Color) = (1.0,0,0,1.0) //Red
        _ColorReplacement2("Green", Color) = (0,1.0,0,1.0) //Green
        _ColorReplacement3("Blue", Color) = (0,0,1.0,1.0) //Blue
        _ColorReplacement4("Yellow", Color) = (1.0,1.0,0,1.0) //Yellow
        _ColorReplacement5("Purple", Color) = (1.0,0,1.0,1.0) //Purple
        _ColorReplacement6("Cyan", Color) = (0,1.0,1.0,1.0) //Cyan
        _ColorReplacement7("White", Color) = (1.0,1.0,1.0,1.0) //White


    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag 

            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            fixed4 _color;

            uniform float _TH; //Threshold value

            //MainColors
            uniform float4 _Red;
            uniform float4 _Green;
            uniform float4 _Blue;
            uniform float4 _Yellow;
            uniform float4 _Purple;
            uniform float4 _Cyan;
            uniform float4 _White;

            //Colors Replacement
            uniform float4 _ColorReplacement1;
            uniform float4 _ColorReplacement2;
            uniform float4 _ColorReplacement3;
            uniform float4 _ColorReplacement4;
            uniform float4 _ColorReplacement5;
            uniform float4 _ColorReplacement6;
            uniform float4 _ColorReplacement7;


            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };



            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                return o;
            }

            half dis(float4 c){
            half result = (pow(_color.r - c.r,2.0)+pow(_color.g - c.g,2.0)+pow(_color.b - c.b,2.0));
            return result;
            }

            fixed4 frag (v2f i) : Color
            {
                 _color = tex2D(_MainTex, i.uv);
 
                if(dis(_Red)<=_TH){
                    return  _ColorReplacement1;
                }
                if(dis(_Green)<=_TH){
                    return  _ColorReplacement2;
                }
                if(dis(_Blue)<=_TH){
                    return _ColorReplacement3;
                }
                if(dis(_Yellow)<=_TH){
                    return  _ColorReplacement4;
                }
                if(dis(_Purple)<=_TH){
                    return _ColorReplacement5;
                }
                if(dis(_Cyan)<=_TH){
                    return _ColorReplacement6;
                }
                if(dis(_White)<=_TH){
                    return _ColorReplacement7;
                }
                return  float4(_color.rgb,1);
            }
            ENDCG
        }
    }
}

useful links: Chroma Key Shader 2 , Chroma Key Shader 1

deleted 96 characters in body
Source Link
Loading
added 42 characters in body
Source Link
Loading
Source Link
Loading