SurFace代码:
Shader "Custom/s1"
{
Properties
{
//变量名("显示在面板上的名字",数据类型) = (值)
_Color("我是颜色呀!",Color) = (1,1,1,1)
_Ambient("我是环境光",Color) = (0.3,0.3,0.3,0.3)
_Specular("反射高光",Color) = (1,1,1,1)
_Shininess("发亮发光",Range(0,10)) = 4 //Range范围 默认等于4
_Emission("自发光",Color) = (1,1,1,1)
_MainTex("主贴图",2d) = ""
_MainTex2("第二张贴图",2d) =""
}
SubShader
{
//渲染 透明物体 控制渲染顺序 先渲染透明的
Tags { "Queue" = "Transparent" }
pass{
//透明度的混合 官方解释地址:file:///Applications/Unity/Hub/Editor/2018.4.4f1/Documentation/en/Manual/SL-Blend.html
Blend Srcalpha OneMinusSrcAlpha
//固定值用()包起来 变量值用[]包起来
color[_Color]
//Material材质命令块
Material{
//这个物体本身固有的颜色 []使用一个变量参数
DIFFUSE[_Color]
Ambient[_Ambient]
SPECULAR[_Specular]
shininess[_Shininess]
emission[_Emission]
}
Lighting On //开启光照
SeparateSpecular On //高光 和SPECULAR配合着使用
//贴图
SetTexture[_MainTex]
{
//primary 表示之前上面计算过的所有光照 quad->4倍亮度 double->两倍亮度
Combine texture * primary double
}
//第二张贴图
SetTexture[_MainTex2]
{
//primary 表示之前上面计算过的所有光照 quad->4倍亮度 double->两倍亮度 //previous乘上之前所有的定点计算光照 包括第一张贴图的
Combine texture * previous double
}
}
}
FallBack "Diffuse"
}
如果要修改透明度 请修改颜色的Alpha 透明度
测试效果如下: