Unity中,为Shader添加调节透明度功能
目的
给定某个不支持调节透明度的Shader,为其添加调节透明度功能
做法
修改该Shader内的如下内容
- SubShader下的Tags中的内容修改如下
Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
- 新增1个Pass
pass
{
ZWrite On
// 用于设置颜色通道的写掩码,0意味着这个Pass不写入任何颜色
// ColorMask RGBA意味着写入RGBA四个通道的颜色
ColorMask 0
}
- 原Pass中,Tags下、CGPROGRAM上增加如下内容
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
- 原Pass中,新增字段
fixed _AlphaScale;
- 原Pass中的返回值修改为如下内容
return fixed4(finalColor, _AlphaScale);
共有 0 条评论