1、创建一个Image,在image下面再创建一个image并更改名字为Skillask,在SkillMask下面创建一个Text文本框,并更改名字为LeftTime,如图2-1所示。
2、在Image的Inspector面板中编辑Source Image,选中一个sprite,并且编辑Image Type组件,选择Filled选项。
3、在SkillMask的Inspector面板中编辑Source Image,选中一个纯色的sprite,编辑透明度(调节颜色中的A值),更改为100,。
4、为SkillMask添加SkillMask脚本
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class SkillMask : MonoBehaviour
{
Image img;//定义img组件
public bool isCooling;//定义是否冷切变量
public float CD= 6f;//定义冷切时间
Text leftTime;//显示时间的文本框
void Start()
{
//分别获取组件
img = GetComponent<Image>();
leftTime = GetComponentInChildren<Text>();
}
void FixedUpdate()
{
//当按Q的时候技能开始冷切
if (Input.GetKeyDown(KeyCode.Q))
{
BeginCD();//自定义的开始冷切方法
}
//如果开始读CD条
if (isCooling)
{
img.fillAmount -= Time.fixedDeltaTime/CD;//技能冷切时
leftTime.text = (img.fillAmount * CD).ToString("0");//剩余冷切时间显示
if (img.fillAmount == 0)
{
EndCD();//自定义的结束冷切方法
}
}
}
void BeginCD()
{
if (!isCooling)
{
isCooling = true;
img.fillAmount = 1;
}
else //当技能在冷切时,不能释放技能(也就是说技能正在冷切的过程)
{
print("技能暂时不能释放");
}
}
void EndCD()
{
if (isCooling)
{
isCooling = false;
img.fillAmount = 0;
leftTime.text = "";
}
}
}
最终效果图2-2
<img src="https://img-blog.csdn.net/20150622202354910?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR2FtZV9PYmplY3Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />