1、利用纹理坐标制作滚动的背景的原理
注意点:
滚动的背景使用的美术资源图片,往往是首尾循环相连的
基本原理:
不停地利用时间变量对uv坐标进行偏移运算,超过1的部分从0开始采样;小于0的部分从1开始采样
Shader "ShaderProj/8/ScrollingBackground"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_ScrollSpeedU("_ScrollSpeedU",float) = 0.5
_ScrollSpeedV("_ScrollSpeedV",float) = 0.5
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True"}
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float _ScrollSpeedU;
float _ScrollSpeedV;
v2f vert (appdata_base v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
float2 scrollUV = frac(i.uv + float2(_Time.y * _ScrollSpeedU, _Time.y * _ScrollSpeedV));
return tex2D(_MainTex, scrollUV);
}
ENDCG
}
}
}