首页 > 代码库 > 技能冷却效果-[Unity]

技能冷却效果-[Unity]

这里我们主要讨论类似LOL中技能冷却的实现。如图:


1、使用NGUI中的Filled Sprite来实现。这里只需要简单的将遮罩层的Sprite的type设置成Filled,FillDir为Radial360,然后控制Fill Amount即可。如下图



2、使用Shader来实现,原来也很简单,设置一个Alpha值渐增的遮罩贴图,设置一个阙值,Alpha大于这个阙值的部分不透明,小于阙值的透明,这样我们通过改变这个阙值的大小就可以达到想要的效果了。在shader中要实现根据alpha值的大小来决定是否显示,我们可以使用alpha test,也可以直接根据alpha值来设置alpha为0或者为1.如:

half4 frag(v2f i) : COLOR
{
	fixed4 c = tex2D(_MainTex, i.uv);
	fixed a = tex2D(_MaskTex, i.uv).a;
	c.a *= a >= _Threshold ? 0f : 1f;
	return c;
}
这里使用的遮罩贴图如:



技能冷却效果-[Unity]