U3D技能按键CD

本文介绍了一个Unity中技能冷却效果的实现方式,包括倒计时显示、按键触发、黑白精灵显示等功能。通过脚本控制技能的冷却时间及按钮的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
}

 

修改前!

 

 

修改后

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值