标签:技能冷却 遮罩 shader unity alpha test
这里我们主要讨论类似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; }这里使用的遮罩贴图如:
标签:技能冷却 遮罩 shader unity alpha test
原文地址:http://blog.csdn.net/cubesky/article/details/40620199