Unity NGUI实现技能冷却

举报
陈言必行 发表于 2021/08/14 00:54:16 2021/08/14
2.8k+ 0 0
【摘要】 技能冷却: 首先要有两个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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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