读一读

属性放在Properties块里面

Properties{
    //名字("显示的名字",类型)=默认值
    _Color("Color",Color) = (r,g,b,a)
    _Vector("Vector",Vector) = (1,2,3,4)
    _Int("Int",Int) = 100
    _Float("Float",Float) = 3.6
    _Range("Range",Range(1,10)) = 6
    _2D("Texture",2D) = "white"{}
    _Cube("Cube",Cube) = "white"{}
    _3D("Texture3",3D) = "white"{}
}


纹理2、3D的默认值"white"{}指的是不指定图片时,默认整个纹理为白色


Shader "[路径/../]名字"{

}

在Unity中就可以在Material的Shader通过路径来找到这个名字,指定用这个Shader来渲染。(名字可以和文件名不一样)


使用的是ShaderLab编写的Unity中的Shader

  1. 表面着色器 Surface Shader

  2. 顶点/片元着色器 Vertex/fragment Shader

  3. 固定函数着色器 Fixed Function Shader

可以认为表面着色器是顶点(片元)着色器的封装,固定函数着色器是以前老硬件不支持才使用的,一般不用理。