Unity中,对于一个物体我们想要改变其的外观,就需要给其增加一个材质,即Matiral
一般的Matiral采用的是标准的Shader,而标准的Shader并不是最好的渲染物体表明的效果,那么我们就需要自定义自己的Shader来渲染物体表面。
下面的是改变原有物体表面颜色的Shader:
Shader "Unlit/RedShader" {
//属性 Properties { _Color("Color",Color)=(1,0,0,1) } SubShader { Tags { "RenderType"="Opaque" } LOD 100 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 } } }