- Home /
How to make an unlit transparent shader that supports text but does not depth check but does support tint?
Ok I have a shader that does almost exactly what I want. It is Unlit, and transparent, supports tint color, and doesn't check z depth so it always appears on top of everything. I use it for UI.
However, What it does not appear to support is colored text. If I use the shader on the Unity UI text it correctly appears unlit and doesn't depth test but it also completely ignores the text color. It always just appears black.
The shader as it appears now is below. Many thanks to anyone who can explain how to make this shader support colored text:
Shader "Unlit/Transparent HUD" {
Properties
{
_MainTex ("Base (RGB), Alpha (A)", 2D) = "white" {}
_Color ("Main Color", Color) = (0.5,0.5,0.5,0.5)
}
SubShader
{
LOD 100
Tags
{
"Queue" = "Transparent+99"
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
}
Cull Off
Lighting Off
ZTest Always
ZWrite Off
Fog { Mode Off }
Offset -1, -1
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
fixed4 color : COLOR;
};
struct v2f
{
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
fixed4 color : COLOR;
};
sampler2D _MainTex;
float4 _MainTex_ST;
fixed4 _Color;
v2f vert (appdata_t v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
o.color = v.color;
return o;
}
fixed4 frag (v2f i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.texcoord) * i.color * _Color;
return col;
}
ENDCG
}
}
}
Your answer
Follow this Question
Related Questions
Stopping 3D text from showing through game objects in free unity. 1 Answer
Unlit Transparent With Color Support 1 Answer
create a texture with shader code? ( without using a texture ) 1 Answer
vertex displacement shader and ssao 0 Answers
Depth mask with alpha / adding alpha to frag grabpass shader 0 Answers