Unity NGUI实现技能冷却

举报
陈言必行 发表于 2021/08/14 00:54:16 2021/08/14
【摘要】 技能冷却: 首先要有两个UISprite 一个作为游戏图标显示,一个使用半透明的灰色表示冷却过程中的遮罩层,代码当然也直接挂在这个UISprite(即为下图的Mask)上,并且设置Type属性为Filled如下图: 都设置完成之后,开始编写代码吧: public class JiNengLengQu : MonoBehaviour { public float...

技能冷却:

首先要有两个UISprite 一个作为游戏图标显示,一个使用半透明的灰色表示冷却过程中的遮罩层,代码当然也直接挂在这个UISprite(即为下图的Mask)上,并且设置Type属性为Filled如下图:

都设置完成之后,开始编写代码吧:


  
  1. public class JiNengLengQu : MonoBehaviour {
  2. public float coldTime = 0.1f; //假装是冷却时间
  3. private bool isColding = false; //是否正在冷却
  4. private UISprite sprite;
  5. void Awake()
  6. {
  7. //获取遮罩层Sprite上UISprite脚本
  8. sprite = GetComponent<UISprite>();
  9. sprite.fillAmount = 0; //保证运行时是一个冷却好的状态,即可放技能状态
  10. }
  11. void Update()
  12. {
  13. if (Input.GetKeyDown(KeyCode.A) && isColding == false)
  14. {
  15. //1- 释放技能:创建粒子系统,显示技能特效..
  16. //2- UI上显示技能冷却效果
  17. sprite.fillAmount = 1;//获取脚本后可以取到fillAmount属性的值,并设为1
  18. isColding = true; //如果按技能了,让冷却开始
  19. }
  20. if (isColding)
  21. {
  22. //fillAmount-=表示每帧减去的值,技能冷却中
  23. sprite.fillAmount -= coldTime*Time.deltaTime;
  24. if (sprite.fillAmount <= 0.05f) //fillAmount值为极小时,让冷却停止
  25. {
  26. isColding = false;
  27. sprite.fillAmount = 0; //并让fillAmount值为0,表示此次冷却完成
  28. Debug.Log("又可以放技能啦!");
  29. }
  30. }
  31. }
  32. }


文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/77748591

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。