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模式。