Shader "Custom/Transparent" {
Properties {
_Color ("Main Color", Color) = (1,1,1,0.6)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "Queue"="Transparent" }
Pass{
Blend SrcAlpha OneMinusSrcAlpha
Color[_Color]
SetTexture[_MainTex]{
combine previous * texture
}
}
}
SubShader {
Tags { "Queue"="Transparent" }
CGPROGRAM
#pragma surface surf Lambert alpha
fixed4 _Color;
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
SubShader {
Tags { "Queue"="Transparent" }
Blend SrcAlpha OneMinusSrcAlpha
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _Color;
s
【Unity Shader】简单Transparent shader的三种实现
最新推荐文章于 2024-06-23 13:25:54 发布
本文详细介绍了如何在Unity中创建透明Shader的三种不同方法,包括基于表面着色器、CG程序和传统Pass的实现。通过调整Shader属性,可以实现物体的半透明效果,同时附带了相应的代码示例。
摘要由CSDN通过智能技术生成