Unity着色器:你可以修复这个着色器吗?

时间:2016-06-06 17:19:17

标签: unity3d shader

image

我想在树的轮廓中摆脱奇怪的彩色区域。这是我的着色器用于树精灵的代码:

    Shader "Unlit/Transparent Color Z on 2" {
Properties {
    _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
    _Color ("Main Color", Color) = (1,1,1,1) 
}

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

    ZWrite On Blend One OneMinusSrcAlpha Cull Off
    //ZTest Always
    Blend SrcAlpha OneMinusSrcAlpha 

    Pass {

        Lighting Off
        SetTexture [_MainTex] {

            constantColor [_Color]

            Combine texture * constant, texture * constant 

         } 
    }
}
}

此外,树的排序顺序为7,背景砖的排序顺序为14.树的z位置为-11,砖的z位置为-8.8。

1 个答案:

答案 0 :(得分:0)

您注释掉了“ ZTest始终”,因此使用后备“ ZTest LEqual ”。您看到的轮廓是网格(Sprite属性中的“Tight”选项)被写入Z缓冲区,防止正确绘制砖。