Shader "Custom/GradientBackground" { Properties { _MainTex ("Base (RGB)", 2D) = "white" { } _GradientStart ("Start Color", Color) = (1, 1, 1, 1) _GradientEnd ("End Color", Color) = (0, 0, 0, 0) } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float4 pos : POSITION; float2 uv : TEXCOORD0; }; // 材质属性 sampler2D _MainTex; float4 _GradientStart; float4 _GradientEnd; v2f vert(appdata v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } half4 frag(v2f i) : SV_Target { // 计算从左到右的透明度渐变 float alpha = lerp(_GradientStart.a, _GradientEnd.a, i.uv.x); // 获取纹理颜色 half4 texColor = tex2D(_MainTex, i.uv); // 应用透明度渐变到纹理颜色 texColor.a *= alpha; return texColor; } ENDCG } } FallBack "Diffuse" }