首页 > 代码库 > NGUI实现技能CD效果

NGUI实现技能CD效果

  在NGUI中使用Sprite的遮罩效果可以很轻松的实现技能CD效果。

具体实现步骤:

①新建一个技能图标的Sprite 如图中的Skill001,再在该技能Sprite上添加一个Sprite做遮罩, Atlas中选一张纯灰色背景的图片,如图中的Shade_Sprite。

②在该遮罩Sprite中有三个属性用来控制遮罩的效果。

Type:Filled 

Fill Dir:Radial360

Fill Amount:0

 

 

滑动Fill Amount,就可以看到效果了

 ③给技能游戏对象绑定一个快捷键或按钮的脚本

在技能Sprite上添加一个Box Collider和一个NGUI按钮脚本UIButton,给按钮绑定onClick事件,参考NGUI事件监听之UIEventListener的使用

public class Skill : MonoBehaviour {    //冷却时间    public float coldTime = 1f;    //是否正在冷却    private bool isColding = false;    private UISprite shade_Sprite;    void Awake()    {        //var Skill001_Shade = GameObject.Find("UI Root/Skill_Window/Skill_Border/Skill001/Shade_Sprite");        //shade_Sprite = Skill001_Shade.GetComponent<UISprite>();        shade_Sprite = gameObject.transform.Find("Shade_Sprite").GetComponent<UISprite>();        UIEventListener.Get(this.gameObject).onClick += StartSkill;    }    void Update()    {        if (Input.GetKey(KeyCode.N) && !isColding)        {            //TODO 触发技能,技能特效等            shade_Sprite.fillAmount = 1;            isColding = true;        }        if (isColding)        {            shade_Sprite.fillAmount -= (1f/coldTime)*Time.deltaTime;            if (shade_Sprite.fillAmount <= 0.001)            {                shade_Sprite.fillAmount = 0;                isColding = false;            }        }    }    void StartSkill(GameObject go)    {        if ( !isColding)        {            //TODO 触发技能,技能特效等            shade_Sprite.fillAmount = 1;            isColding = true;        }    }   }

 

NGUI实现技能CD效果