如何在我的 unity3d 着色器中添加透明度?

How do i add transparency in my unity3d shader?

我有一个着色器可以将隧道弯曲成弯曲的路径。但是当我在那个隧道里面的时候,我希望隧道的墙壁是透明的(透明的),这样我就可以看到隧道外面的天空盒和其他东西。

我的着色器中已经编码了透明度设置,但它不起作用。这是我的代码。请看一下,

Shader "WorldBend/Bend_Unlit_Segments" 
{

Properties
{
    _Color ("Main Color", Color) = (1,1,1,1)
    _Emission ("Emissive Color", Color) = (0,0,0,0)
    _MainTex ("Base (RGB)", 2D) = "white" { }
    _Transparency ("Transparency", Float) = 0.25
}

SubShader 
{
    Tags {"Queue"="Transparent" "RenderType"="Transparent" }
    LOD 100

    ZWrite Off
    Blend SrcAlpha OneMinusSrcAlpha

    Pass {  
        Name "BASE"
        CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"
            #include "BendEffect.cginc"

            struct appdata_t {
                float4 vertex : POSITION;
                float2 texcoord : TEXCOORD0;
            };

            struct v2f {
                float4 vertex : SV_POSITION;
                half2 texcoord : TEXCOORD0;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;
            float4 _Emission;
            float4 _Color;
            float4 _Transparency;

            v2f vert (appdata_t v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(BendEffect(v.vertex));
                o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                return o;
            }

            fixed4 frag (v2f i) : COLOR
            {
                fixed4 col = tex2D(_MainTex, i.texcoord) * _Color;
                col.a = _Transparency;
                return col + _Emission;
            }
        ENDCG
    }
}

}
_Color ("Main Color", Color) = (1,1,1,1)

这里的颜色值是RGBA格式,第四个值("A")是设置透明度的alpha通道。 1表示不透明,0表示透明。两者之间的值,嗯,就像其他 RGB 值一样工作。