天天看點

NGUI(五)技能CD冷卻

1,建立技能按鈕,在該按鈕物體上建立圖檔作為子物體,圖檔格式設為360度填充,添加監聽事件

NGUI(五)技能CD冷卻
NGUI(五)技能CD冷卻

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SkillCD : MonoBehaviour
{
    private UISprite skillMask;
    public float coldTimer = 2;         //技能冷卻時間
    private bool isCD = false;          //是否冷卻中
    private void Awake()
    {
        //擷取按鍵
        skillMask = transform.Find("Sprite").GetComponent<UISprite>();  //擷取技能陰影遮罩
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.A))
        {
            SkillClick();
        }

        if(isCD)
        {
            skillMask.fillAmount -= (1 / coldTimer) * Time.deltaTime;  // 1/coldTimer  每秒恢複數值  1/coldTimer*Time.deltaTime  每幀恢複技能數值
            if(skillMask.fillAmount<=0.05f)   //當fillAmount小于一定數值時 就當作已經清零
            {
                skillMask.fillAmount = 0;
                isCD = false;                   //清除冷卻
            }
        }
    }

    public void SkillClick()
    {
        if(isCD==false)
        {
            //1.釋放技能,建立粒子系統,顯示技能特效
            //2.UI上顯示技能冷卻效果
            skillMask.fillAmount = 1;   //蒙皮
            isCD = true;
        }
    }

}