Unity UGUI 流光特效

UGUI 流光特效

效果图:

在这里插入图片描述

原理

1. 写个简单的Shader:

float4 frag (v2f i) : SV_Target
{
    
    
	float4 col = tex2D(_MainTex, i.uv);
	float2 uv = i.uv - 0.5;
	float2 pt = pointbyangle( fmod( _StartAngle + _Time.y * _Speed, 360));
	float l = clamp( 1 - length( uv - pt ) / ( _Size * 1.414213562373), 0, 1 );
	float4 bor = lerp( _BorderColor, _BorderColor * col.a, _Alpha );
	return lerp( float4(0,0,0,0), bor, l );
}

2. 创建一个材质赋予Image

在这里插入图片描述
材质可以配置的项有流光颜色、流光位置、速度、大小、开始角度(这是为了多个UI组件都具有该特效时,避免流光全都同步,赋予开始角度后,可以打乱每个窗体的流光角度,使他们各自不同)。

要注意的小坑

想要让PostProcess在UGUI上起作用,Canvas渲染模式不能设置为Overlay,其他两种模式都可以,如果UI仅仅需要摆到屏幕上,则使用Camera模式,如果UI需要摆到场景中,则World Space模式。

源码下载:
https://download.csdn.net/download/sdhexu/21540738

猜你喜欢

转载自blog.csdn.net/sdhexu/article/details/119927614