实现如图效果,展示技能CD变化:
1.使用NGUI,新建Sprite,并在其中新建三个子对象。分别用作技能cd 遮罩,技能标示(效果图中的A键提示),和技能状态,根据需要创建,并调整好颜色大小等。
如图所示是我创建并自定义名称的,其中cover为技能cd遮罩。
2.点击cover这个Sprite查看其属性,将type修改为Filled:
3.通过下面的Fill Amount属性就可以调整阴影,展现出技能cd的效果。代码控制的例子如下:
/// <summary>
/// 按键进入CD,改变遮罩状态
/// </summary>
public class CdChange : MonoBehaviour
{
private bool isCold = false;
private UILabel label;
public float cdTime = 2f; //冷却时间
private UISprite cover; //cd遮罩
//类似Start,但有所区别
private void Awake()
{
label = transform.Find("state").GetComponent<UILabel>();
cover = transform.Find("cover").GetComponent<UISprite>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.A) && isCold == false)
{
cover.fillAmount =
1;
label.text = "技能冷却中";
isCold = true;
}
//技能冷却中
if (isCold)
{
//cd效果
cover.fillAmount -= (1f / cdTime) * Time.deltaTime;
if (cover.fillAmount <= 0.02f)
{
cover.fillAmount = 0;
isCold = false;
label.text = "技能冷却完毕";
}
}
}
}