Unity 版本:2020.3.23
此教程会长期更新,欢迎大家关注!!!
博主微信号:ITComputerGraph
首先,我们新建一个 Unlit Shader,Unity会自动给我们创建一个Shader,稍做修改,我们会得到一个可以调节颜色的Shader,并在接下来一步步讲解每一个代码块的函意,具体代码如下:
Shader "MyShader/NewUnlitShader"
{
Properties
{
_Color ("Color", Color) = (1, 1, 1, 1)
}
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 vertex : SV_POSITION;
};
float4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
return _Color;
}
ENDCG
}
}
}
1、我们看最外层的大括号,这个是一个标准写法,它定义了我们Shader的名称和材质路径,可以让我们在编辑器里方便的找到它,并赋与材质球
Shader "MyShader/NewUnlitShader"
{
......
}
2、Properties 是材质的属性栏,我们每在属性栏里增加一个字段,对应的Unity材质面板就会多出一外部可调的参数
Properties
{
_Color ("Color", Color) = (1, 1, 1, 1)
_Color1 ("Color1", Color) = (1, 1, 1, 1)
}
3、SubShader 这个语句块里包含了具体的Shader代码逻辑
SubShader
{
......
}
4、Pass 这个语句块是在SubShader里面的,Pass是可以有多个的,每多一个Pass就会多一次绘制
Pass
{
......
}
Pass
{
......
}
下一节我们详细讲述每个语句块里的代码。