【问题标题】:Can this shader exist in Unity?这个着色器可以存在于 Unity 中吗?
【发布时间】:2016-06-08 17:46:29
【问题描述】:

'Front'和'back'都是SpriteRenderer。

Unity 中是否存在可以执行此操作的着色器?

【问题讨论】:

  • 所以您希望顺序显示为倒置?为什么不能简单地在 3D 视图中正确排序它们?

标签: unity3d shader


【解决方案1】:

您可以创建自己的着色器。以下是相同的代码:-

Properties {
     _MainTex ("Font Texture", 2D) = "white" {}
     _Color ("Text Color", Color) = (1,1,1,1)

     _StencilComp ("Stencil Comparison", Float) = 8
     _Stencil ("Stencil ID", Float) = 0
     _StencilOp ("Stencil Operation", Float) = 0
     _StencilWriteMask ("Stencil Write Mask", Float) = 255
     _StencilReadMask ("Stencil Read Mask", Float) = 255

     _ColorMask ("Color Mask", Float) = 15
 }

 SubShader {

     Tags 
     {
         "Queue"="Transparent"
         "IgnoreProjector"="True"
         "RenderType"="Transparent"
         "PreviewType"="Plane"
     }

     Stencil
     {
         Ref [_Stencil]
         Comp [_StencilComp]
         Pass [_StencilOp] 
         ReadMask [_StencilReadMask]
         WriteMask [_StencilWriteMask]
     }

     Lighting Off 
     Cull Off 
     ZTest Off
     ZWrite Off 
     Blend SrcAlpha OneMinusSrcAlpha
     ColorMask [_ColorMask]

     Pass 
     {
         CGPROGRAM
         #pragma vertex vert
         #pragma fragment frag

         #include "UnityCG.cginc"

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

         struct v2f {
             float4 vertex : SV_POSITION;
             fixed4 color : COLOR;
             float2 texcoord : TEXCOORD0;
         };

         sampler2D _MainTex;
         uniform float4 _MainTex_ST;
         uniform fixed4 _Color;

         v2f vert (appdata_t v)
         {
             v2f o;
             o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
             o.color = v.color * _Color;
             o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
             #ifdef UNITY_HALF_TEXEL_OFFSET
                  o.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
             #endif
             return o;
         }

         fixed4 frag (v2f i) : SV_Target
         {
             fixed4 col = i.color;
             col.a *= tex2D(_MainTex, i.texcoord).a;
             clip (col.a - 0.01);
             return col;
         }
         ENDCG 
     }
 }
  FallBack "Diffuse"

【讨论】:

  • 感谢 vanshika,但您的着色器在 2D 正交相机和精灵渲染器中不起作用。
  • 在精灵渲染器中也有一个着色器选项。制作一个新的着色器并将其放在那里。它会起作用的。
  • 不!它没有用。精灵只显示白色剪影,而不是图像内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多