_Time/_SinTime/_CosTime的x,y,z,w分量含义:

实现贴图颜色在两个色值之间渐变,或者贴图alpha值渐变:

Shader "MyShader/SpriteFlicker"
{
    Properties
    {
		_MainTex ("Texture", 2D) = "white" {}
		_StartColor("StartColor",Color) = (1,1,1,1)
		_EndColor("EndColor",Color) = (0,0,0,1)
		_FlickerSpeed("FlickerSpeed",int) = 3
    }
    SubShader
    {
        Tags
		{
			"Queue" = "Transparent"
			"RenderType"="Opaque"
		}

		LOD 100

		Pass
		{
			//关闭深度写入
			//ZWrite Off
			Blend SrcAlpha OneMinusSrcAlpha

			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				float4 vertex : SV_POSITION;
			};

			sampler2D _MainTex;
			float4 _MainTex_ST;
			fixed4 _StartColor;
			fixed4 _EndColor;
			int _FlickerSpeed;
			v2f vert (appdata v)
			{
				v2f o;
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.uv, _MainTex);
				return o;
			}
			
			fixed4 frag (v2f i) : SV_Target
			{
				//函数Cos()取值范围:-1~1,(Cos()+1)*0.5,取值0~1,实现周期变化。函数lerp(),插值两个色值
				//fixed4 b_color = lerp(_StartColor,_EndColor,(cos(_Time.y*_FlickerSpeed)+1)*0.5);
				fixed4 b_color = lerp(_StartColor,_EndColor,(_CosTime.w+1)*0.5);

				alpha渐变
				//fixed4 b_color =_StartColor;
				//b_color.a = (cos(_Time.y*_FlickerSpeed)+1)*0.5;

				fixed4 col = tex2D(_MainTex, i.uv)*b_color;
				return col;
			}
			ENDCG
		}
    }
    FallBack "Diffuse"
}