Unity NGUI实现技能冷却
【摘要】 技能冷却:
首先要有两个UISprite 一个作为游戏图标显示,一个使用半透明的灰色表示冷却过程中的遮罩层,代码当然也直接挂在这个UISprite(即为下图的Mask)上,并且设置Type属性为Filled如下图:
都设置完成之后,开始编写代码吧:
public class JiNengLengQu : MonoBehaviour { public float...
技能冷却:
首先要有两个UISprite 一个作为游戏图标显示,一个使用半透明的灰色表示冷却过程中的遮罩层,代码当然也直接挂在这个UISprite(即为下图的Mask)上,并且设置Type属性为Filled如下图:
都设置完成之后,开始编写代码吧:
-
public class JiNengLengQu : MonoBehaviour {
-
-
public float coldTime = 0.1f; //假装是冷却时间
-
private bool isColding = false; //是否正在冷却
-
private UISprite sprite;
-
void Awake()
-
{
-
//获取遮罩层Sprite上UISprite脚本
-
sprite = GetComponent<UISprite>();
-
sprite.fillAmount = 0; //保证运行时是一个冷却好的状态,即可放技能状态
-
}
-
void Update()
-
{
-
if (Input.GetKeyDown(KeyCode.A) && isColding == false)
-
{
-
//1- 释放技能:创建粒子系统,显示技能特效..
-
//2- UI上显示技能冷却效果
-
sprite.fillAmount = 1;//获取脚本后可以取到fillAmount属性的值,并设为1
-
isColding = true; //如果按技能了,让冷却开始
-
-
}
-
if (isColding)
-
{
-
//fillAmount-=表示每帧减去的值,技能冷却中
-
sprite.fillAmount -= coldTime*Time.deltaTime;
-
-
if (sprite.fillAmount <= 0.05f) //fillAmount值为极小时,让冷却停止
-
{
-
isColding = false;
-
sprite.fillAmount = 0; //并让fillAmount值为0,表示此次冷却完成
-
Debug.Log("又可以放技能啦!");
-
}
-
}
-
}
-
}
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/77748591
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)