Unity技能冷却功能
代码:
// 技能的图标
public Image icon;
//通过Text显示时间
public Text txt;
float aTxt;
bool Dtime = false;
// 技能的冷却时间
public float coolDown;
// 技能名称,用于区分使用了哪个技能的
//public string skillName;
// 保存当前技能的冷却时间
private float currentCoolDown;
// 技能的按钮
private Button skillButton;
void Start()
{
// 获得技能按钮,然后绑定点击事件
this.skillButton = this.GetComponent<Button>();
skillButton.onClick.AddListener(UseSkill);
// 一开始冷却时满的,可以立即使用技能
// 如果不想让玩家一开始能立即使用技能,这里设置成别的小于技能冷却的值
currentCoolDown = coolDown;
}
void Update()
{
if (currentCoolDown < coolDown )
{
//更新冷却
currentCoolDown += Time.deltaTime;
//显示冷却过程
this.icon.fillAmount = currentCoolDown / coolDown;
Dtime = true;
}
if (Dtime )
{
//显示技能时间
aTxt -= Time.deltaTime;
txt.text = Math.Round(aTxt , 2).ToString();//float型保留最后两位数字
if (aTxt <= 0)
{
txt.text = "";
Dtime = false;
}
}
}
public void UseSkill()
{
if (currentCoolDown >= coolDown)
{
// 重置冷却时间
currentCoolDown = 0;
}
aTxt = coolDown;
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!