Shader播放序列帧

<1>代码

Shader "Tang/622/FrameAnim"{

	Properties{
		_MainTex("序列帧",2D) = "white" { }
		_Row("行",Float) = 8
	    _Col("列",Float) = 8
		_Speed("速度",Float) = 80
	}

	SubShader{
		Tags {"Queue" = "Transparent" "RenderType" = "Transparent"}
		Pass{
			Tags { "LightMode" = "ForwardBase" }
			ZWrite off
			cull off 
			Blend SrcAlpha OneMinusSrcAlpha 
			CGPROGRAM
			#pragma vertex vert 
			#pragma fragment frag 
			#include "UnityCG.cginc"

			struct a2v{
				float4 vertex:POSITION;
				float4 texcoord:TEXCOORD0;
			};
			struct v2f{
				float4 pos:SV_POSITION;
				float2 uv:TEXCOORD0;
			};
			sampler2D _MainTex;float4 _MainTex_ST;
			float _Row;
			float _Col;
			float _Speed;

			v2f vert(a2v v){
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);
				return o;
			}

			fixed4 frag(v2f i):SV_Target{
                float time = floor(_Time.y*_Speed);
				//求行
				float row = floor(time/_Col);
				//求列
				float column = time - row*_Row;
				half2 uv  = i.uv +half2(column,-row);
				//列
				uv.x/=_Col;
				//行 row/_Row = 起始行uv i.uv.y/_Row = i.uv.y缩放  相加 = 当前uv.y
				uv.y/=_Row;
				return tex2D(_MainTex,uv);
			}

			ENDCG
		}
	}

	FallBack "Diffuse"
}

  

原文地址:https://www.cnblogs.com/cocotang/p/11060214.html