U3D技能按键CD

namespace View
{
    public class View_ATKButtomCDEffect : MonoBehaviour
    {
        public Text TxtCountDownNumber;                                        //数字大招倒计时控件
        public float FloCDTime = 2F;                                           //冷却时间
        public Image ImgCircle;                                                //外部圆圈转动特效(精灵)
        public GameObject GoWhiteAndBlack;                                     //黑白精灵
        public KeyCode keyCode;                                                //键盘输入          

        private float _FloTimerDelta = 0F;                                     //时间累积数值
        private bool _IsStartTimer = false;                                    //开始时间计时吗
        private Button _BtnSelf;                                               //本脚本所挂按钮
        private bool _Enable = false;                                          //是否启用


        void Start()
        {
            //得到本按钮
            _BtnSelf = this.gameObject.GetComponent<Button>();
            //不显示“控件倒计时"
            TxtCountDownNumber.enabled = false;
            //默认启用
            EnableSelf();
        }

        void Update()
        {
            //是否启用(本控件)
            if (_Enable)
            {
                //支持键盘输入
                if (Input.GetKeyDown(keyCode))
                {
                    _IsStartTimer = true;
                    //显示“控件倒计时"
                    TxtCountDownNumber.enabled = true;
                }
                if (_IsStartTimer)
                {
                    GoWhiteAndBlack.SetActive(true);                               //启用黑白精灵
                    _FloTimerDelta += Time.deltaTime;                              //时间数值累加
                    //控件倒计时显示
                    TxtCountDownNumber.text = Mathf.RoundToInt(FloCDTime - _FloTimerDelta).ToString();
                    ImgCircle.fillAmount = _FloTimerDelta / FloCDTime;             //给Circle控件赋值
                    _BtnSelf.interactable = false;                                 //按钮禁用
                    //超过规定CD时限
                    if (_FloTimerDelta >= FloCDTime)
                    {
                        TxtCountDownNumber.enabled = false;                        //不显示“控件倒计时"
                        _IsStartTimer = false;
                        ImgCircle.fillAmount = 1;
                        _FloTimerDelta = 0F;
                        GoWhiteAndBlack.SetActive(false);                          //禁用黑白精灵
                        _BtnSelf.interactable = true;                              //按钮启用
                    }
                }
            }
        }//Update_end

        /// <summary>
        /// 响应用户点击
        /// </summary>
        public void ResponseBtnClick()
        {
            _IsStartTimer = true;
            //显示“控件倒计时"
            TxtCountDownNumber.enabled = true;
        }

        /// <summary>
        /// 启用本控件
        /// </summary>
        public void EnableSelf()
        {
            _Enable = true;
            GoWhiteAndBlack.SetActive(false);                                  //启用黑白精灵
            _BtnSelf.interactable = true;                                      //按钮启用
        }

        /// <summary>
        /// 禁用本控件
        /// </summary>
        public void DisableSelf()
        {
            _Enable = false;
            GoWhiteAndBlack.SetActive(true);                                   //启用黑白精灵
            _BtnSelf.interactable = false;                                     //按钮启用
        }

    }//Class_end
}

 

修改前!

 

 

修改后

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值