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 协议 ,转载请注明出处!