Unity中,对于一个物体我们想要改变其的外观,就需要给其增加一个材质,即Matiral
一般的Matiral采用的是标准的Shader,而标准的Shader并不是最好的渲染物体表明的效果,那么我们就需要自定义自己的Shader来渲染物体表面。
下面的是改变原有物体表面颜色的Shader:
Shader "Unlit/RedShader"
{
//属性
Properties
{
_Color("Color",Color)=(,,,)
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag #include "UnityCG.cginc" //定义变量
fixed4 _Color; struct appdata
{
float4 vertex : POSITION;
}; struct v2f
{
float4 vertex : SV_POSITION;
}; v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
} //片源函数
fixed4 frag (v2f i) : SV_Target
{
return _Color;
}
ENDCG
}
}
}