技能CD是游戏开发中常见的功能
效果
注意,脚本挂载位置随意,但按钮名称一定保证和脚本中搜索的名称相同
前期准备
1、创建按钮技能并添加图片,OnClick待脚本编写完毕后从挂载的物体上拖入
2、在技能按钮下创建图片Image当做技能Cd
脚本编写
using UnityEngine;
using UnityEngine.UI;
public class Skill : MonoBehaviour
{
private Button SkillBtn;
private Image SkillCd;
//是否技能冷却
private bool IsSkillCool;
//当前冷却时间
private float skillCdTimer;
//技能冷却时间
private float SkillCdTime=8f;
private void Awake()
{
SkillBtn = GameObject.Find("Skill").GetComponent<Button>();
SkillCd = SkillBtn.transform.GetChild(0).GetComponent<Image>();
if (SkillCd.fillAmount != 0) SkillCd.fillAmount = 0;
IsSkillCool = false;
}
//点击技能按钮时判断技能冷却状态
public void OnSkillClick()
{
if (!IsSkillCool)
{
skillCdTimer = SkillCdTime;
Debug.Log("技能1");
IsSkillCool = true;
}
else
{
Debug.Log("冷却中");
}
}
//当冷却完毕后,raycastTarget和冷却状态重新设置为false
private void Update()
{
if (IsSkillCool)
{
skillCdTimer -= Time.deltaTime;
SkillCd.fillAmount = skillCdTimer / SkillCdTime;
if (skillCdTimer <= 0)
{
IsSkillCool = false;
SkillCd.raycastTarget = false;
}
}
}
}