通过材质面板的颜色和纹理来修改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"
}

在面板中添加贴图并修改颜色。

alt