Properties
{
_MainColor("MainColor",color)=(1,1,1,1)
_MainTex("MainTex",2D)="white"{}
_Color("Color",color)=(1,1,1,1)
_Speed("Speed",range(0,3))=0
_Width("Width",range(0,1))=0
_Angle("Angle",range(-1,1))=0
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
};
struct v2f
{
float4 vertex : SV_POSITION;
float2 uv : TEXCOORD0;
};
float4 _MainColor;
float4 _Color;
sampler2D _MainTex;
float4 _MainTex_ST;
float _Speed;
float _Width;
float _Angle;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col=tex2D(_MainTex,i.uv);
float x=i.uv.x+i.uv.y*_Angle;
float v=sin(x-_Time.y*_Speed);
//smoothstep(a,b,x) 用来生成0-1的平衡过度值
//x<a<b 或 x>a>b 返回0
//x<b<a 或 x>b>a 返回1
v = smoothstep(1-_Width,1.0,v);
fixed3 target=fixed3(v,v,v)*_Color+col;
return fixed4(target,col.a);
}
ENDCG
}
}
Untiy shader 初学 流光效果
于 2023-08-08 19:45:21 首次发布