Gradient + Transparent

Hello. Previously, this did not come across. The gradient shader, add transparency map on the similarity of the standard “Unlit / Transparent”. I would be grateful for your help.

Shader "Unlit/LinearGradient"
{
        Properties {
        _TopColor ("Color1", Color) = (1,1,1,1)
        _BottomColor ("Color2", Color) = (1,1,1,1)
    }
        SubShader
        {
                Pass
                {
                        CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag
                        
                        #include "UnityCG.cginc"

                        fixed4 _TopColor;
                        fixed4 _BottomColor;

                        struct v2f {
                                float4 position : SV_POSITION;
                                fixed4 color : COLOR;
                        };

                        v2f vert (appdata_full v)
                        {
                                v2f o;
                                o.position = mul (UNITY_MATRIX_MVP, v.vertex);
                                o.color = lerp(_TopColor,_BottomColor, v.texcoord.y );
                                return o;
                        }

                        fixed4 frag (v2f i) : SV_Target
                        {
                                float4 color = i.color;
                                color.a = 1;
                                return color;
                        }
                        ENDCG
                }
        }
}

Shader “Unlit/LinearGradient”
{
Properties{
_TopColor(“Color1”, Color) = (1,1,1,1)
_BottomColor(“Color2”, Color) = (1,1,1,1)
_MainTex (“Main Texture”, 2D) = “white” {}
}
SubShader
{
Tags { “RenderType” = “Transparent” “Queue” = “Transparent” }
Pass
{
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha

			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag

			#include "UnityCG.cginc"

			sampler2D _MainTex;
			float4 _MainTex_ST;

			fixed4 _TopColor;
			fixed4 _BottomColor;
			half _Value;

			struct v2f {
				float4 position : SV_POSITION;
				fixed4 color : COLOR;
				float2 uv : TEXCOORD0;
			};

			v2f vert (appdata_full v)
			{
				v2f o;
				o.position = mul (UNITY_MATRIX_MVP, v.vertex);
				o.uv = TRANSFORM_TEX (v.texcoord, _MainTex);
				o.color = lerp (_TopColor,_BottomColor, v.texcoord.y);
				return o;
			}

			fixed4 frag(v2f i) : SV_Target
			{
				float4 color;
				color.rgb = i.color.rgb;
				color.a = tex2D (_MainTex, i.uv).a * i.color.a;
				return color;
			}
			ENDCG
		}
	}
}

Just change the alpha value for each colour as a multiplication for the texture’s alpha.