具有全局Alpha的Unity漫反射着色器

时间:2012-11-16 13:20:39

标签: unity3d shader

我正在尝试在Unity中制作一个简单的漫反射着色器,但具有全局alpha值。所以你添加一个纹理(没有alpha),然后在着色器中定义一个alpha值(在0和1之间浮动)。然后整个纹理是透明的。

这是我已经拥有的,它只是你可以成像的最基本的漫反射着色器,虽然我坚持添加alpha。

Properties
{
    _Alpha ("Alpha", Range (0.0,1.0)) = 0.0 
    _MainTex ("Base (RGB) Transparency (A)", 2D) = "" { }
}

SubShader
{
    Pass
    {
        SetTexture [_MainTex] { combine texture }
    }
} 

谢谢,

1 个答案:

答案 0 :(得分:1)

我已经做了一段时间了,但我觉得你想要这样的东西:

SubShader
{
    Tags { "Queue" = "Transparent" }

    Pass
    {
        Blend SrcAlpha OneMinusSrcAlpha

        SetTexture [_MainTex] {
           constantColor (1, 1, 1, [_Alpha])
           combine texture * constant
        }
    }
} 

请注意,您可以从here下载内置着色器以实现统一,它们非常有用。