Shader "Custom/ColorBlend" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _MainColor ("Base Color", Color) = (1,1,1,1) _BlendTex ("Blend Texture", 2D) = "white" {} _BlendColor ("Blend Color", Color) = (1,1,1,1) } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 pos : SV_POSITION; }; sampler2D _MainTex; sampler2D _BlendTex; fixed4 _MainColor; fixed4 _BlendColor; v2f vert(appdata v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.uv = v.uv; return o; } fixed4 frag(v2f i) : SV_Target { // 基础颜色计算 fixed4 base = tex2D(_MainTex, i.uv) * _MainColor; // 混合颜色计算 fixed4 blend = tex2D(_BlendTex, i.uv) * _BlendColor; // 混合运算 return lerp(base, blend, blend.a); } ENDCG } } }