**本文转载自http://blog.csdn.net/liang_704959721/article/details/44961757** ——-在游戏中一般都会用到冷却技能(CD)实现的方式一般都是遮罩,你可以自己写遮放的方法,或者用shader实现。使用NGUI会比较方便的实现遮罩类似这样
![](https://img-blog.csdn.net/20150409163849496?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdfNzA0OTU5NzIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
主要用到了ngui的UISprite脚本
ngui——创建一个Sprite,设置一下【Type】类型
![](https://img-blog.csdn.net/20150409164101316?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdfNzA0OTU5NzIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加代码控制【Fill Amount】属性,当为了0遮罩不显示,为1遮罩全部显示。
using UnityEngine;
using System.Collections;
public class CDScript : MonoBehaviour {
public UISprite CDObj;
public float CDTimes = 2f;
private bool Is_start = false;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetKey(KeyCode.A)&&Is_start==false)
{
Is_start = true;
CDObj.fillAmount = 1f;
}
if(Is_start)
{
CDObj.fillAmount -= (1 / CDTimes) * Time.deltaTime;
if(CDObj.fillAmount==0)
{
Is_start = false;
CDObj.fillAmount = 0;
}
}
}
}
遮罩效果一
shader遮罩效果
镂空遮罩