NGUI实现技能CD效果

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

具体实现步骤:

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

NGUI实现技能CD效果

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

Type:Filled

Fill Dir:Radial360

Fill Amount:0

NGUI实现技能CD效果

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

NGUI实现技能CD效果

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

在技能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 = ;
isColding = true;
} if (isColding)
{
shade_Sprite.fillAmount -= (1f/coldTime)*Time.deltaTime;
if (shade_Sprite.fillAmount <= 0.001)
{
shade_Sprite.fillAmount = ;
isColding = false;
}
} } void StartSkill(GameObject go)
{
if ( !isColding)
{
//TODO 触发技能,技能特效等
shade_Sprite.fillAmount = ;
isColding = true;
}
} }
上一篇:持续集成的一些讨论(CI)


下一篇:NGUI 3.x 练习