Создание шейдера регулирующего прозрачность в unity2d

задача - сделать шейдер в unity2d, набрасываемый на обьект и меняющий его степень прозрачности добрый день, задача - сделать шейдер в unity2d, набрасываемый на обьект и меняющий его степень прозрачности

пррблемы: 1)шейдер, несмотря на слайдер, не меняет свою степень прозрачности 2)шейдер в идеале не должен менять палитру объекта - но конкретно этот меняет на ч/б версию объекта как достигнуть поставленных целей и исправить проблемы? код прикрепляю ниже

Shader "Custom/NewImageEffectShader" { Properties { _MainTex ("Texture", 2D) = "white" {} _Slider ("Слайдер", Range(0, -1)) = 0 } SubShader {

    Cull Off
    Blend SrcAlpha One

    Pass
    {
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag

        #include "UnityCG.cginc"
        float _Slider;
        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;
        }

        sampler2D _MainTex;

        fixed4 frag (v2f i) : SV_Target
        {
            fixed4 col = tex2D(_MainTex, i.uv);
            float r = tex2D(_MainTex, i.uv).r;

             return r;
        }
        ENDCG
    }
}

Ответы (0 шт):