// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' // Gradational shader Shader "UsayaLib/3D/Unlit/LerpTextureTransparent" { Properties { _MainTex("Main Texture", 2D) = "white" {} _MainColor ("Main Color", Color) = (1,1,1,1) _SubTex ("Sub Texture", 2D) = "white" {} _SubColor ("Sub Color", Color) = (1,1,1,1) _TexLerp ("Texture Lerp", Range (0.0, 1.0)) = 0 } SubShader { Tags { "RenderType" = "Transparent" "Queue" = "Transparent" } Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag struct VertexInput { float4 color : COLOR; float4 pos: POSITION; float2 uv: TEXCOORD0; }; struct VertexOutput { fixed4 color : COLOR0; float4 v: SV_POSITION; float2 uv: TEXCOORD0; }; fixed4 _MainColor; fixed4 _SubColor; float _TexLerp; // Vertex shader VertexOutput vert(VertexInput input) { VertexOutput output; output.v = UnityObjectToClipPos(input.pos); output.uv = input.uv; output.color = (_MainColor * (1.0 - _TexLerp) + _SubColor * _TexLerp) * input.color; return output; } sampler2D _MainTex; sampler2D _SubTex; // Pixel shader fixed4 frag(VertexOutput output) : SV_Target { fixed4 col, tex, subTex; tex = tex2D(_MainTex, output.uv); subTex = tex2D(_SubTex, output.uv); col.rgba = (tex.rgba * (1.0 - _TexLerp) + subTex.rgba * _TexLerp) * output.color; return col; } ENDCG } } }