Files
HX_MapEditor/Assets/Shader/UnlitTransparent.shader
2025-06-14 13:46:24 +08:00

48 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Shader "OurCustomShaders/UnlitTransparent" {
Properties{
_MainTex("Base (RGB)", 2D) = "white" {}
_Color("Color",Color) = (1,1,1,1)
}
SubShader{
Tags { "RenderType" = "Queue" "Queue" = "Transparent"} // "Queue"="Transparent"将其设置为透明,不然无法看见后面的东西(即使透明)
Blend SrcAlpha OneMinusSrcAlpha //实现Alpha的核心使用语句进行Alpha混合
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler _MainTex;
//float4 _MainTex_ST; 使用TRANSFORM_TEX必备
float4 _Color;
struct v2f {
float4 pos : POSITION;
float2 uv : TEXCOORD0;
float3 color : TEXCOORD1;
};
v2f vert(appdata_base v) {
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
//TRANSFORM_TEX是在_MainTex_ST中的宏
//原始方法o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
//将uv贴图的坐标取出来
o.uv = v.texcoord;
//o.color = ShadeVertexLights(v.vertex, v.normal);取得法线贴图的光照
return o;
}
float4 frag(v2f i) : COLOR {
half4 c = tex2D(_MainTex, i.uv);
//在这个位置接收i.color的话可以接收光照
c.rgb = c.rgb * _Color;
return c * _Color;
}
ENDCG
}
}
FallBack "Diffuse"
}