通过材质面板的颜色和纹理来修改CG中fragment的颜色和纹理属性
Shader"Custom/ParKShader"
{
Properties
{
//示例Shader
_MyFloat("Float Property",Float) = 1 //浮点类型
_MyRange("Range Property",Range(0,1)) = 0.1 //范围类型
_MyColor("Color Property",Color) = (1,1,1,1) //颜色类型
_MyVector("Vector Property",Vector) = (0,1,0,0) //向量类型
_MyTex("Texture Property",2D) = "white"{} //2D贴图类型
_MyCube("Cube Property", Cube) = ""{} //立方体贴图类型
_My3D("3D Property",3D) = ""{} //3D贴图类型
//通过材质面板的颜色和纹理来修改fragment
_MainColor("MainColor",Color) = (1,1,1,1)
_MainTex("MainTex",2D) = "white"{}
}
SubShader
{
Pass
{
CGPROGRAM
//在CG中调用属性变量
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
fixed4 _MainColor;
sampler2D _MainTex;
float4 _MainTex_ST;
void vert (in float4 v : POSITION,in float2 uv : TEXCOORD0, out float4 position : SV_POSITION,out float2 texcoord : TEXCOORD0)
{
position = UnityObjectToClipPos(v);
texcoord = uv*_MainTex_ST.xy + _MainTex_ST.zw;
}
void frag(in float4 position : SV_POSITION,in float2 texcoord : TEXCOORD0,out fixed4 co : SV_TARGET)
{
co = tex2D(_MainTex,texcoord) * _MainColor;
}
ENDCG
}
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
float _MyFloat;
float _MyRange;
float _MyColor;
float _MyVector;
sampler2D _MyTex;
samplerCUBE _MyCube;
sampler3D _My3D;
void vert()
{
}
void frag()
{
}
ENDCG
}
}
Fallback "Diffuse"
}
在面板中添加贴图并修改颜色。