unity3d Ngui UIFilledSprite(CD倒计时)

2 篇文章 0 订阅


using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class TestSkillCD : MonoBehaviour
{
    UIFilledSprite mSprCd;//显示CD条
    float mfCDTime = 0;
    float mfSkillCDTime = 25f;
    private UILabel mShowTime;//显示倒计时时间
     private int mCurTime = 0;
    private float mCloseTime = 0f;
    bool m_bIsCdTimer = false;

    void ResetCD()
    {
        mSprCd.enabled = false;
       	mSprCd.fillAmount = 1.0f;
        mfSkillCDTime = 25f;
         mfCDTime = mfSkillCDTime;
         mCurTime = (int)mfSkillCDTime;
    }
    bool UpdateCD()//在Update更新函数调用
    {
        if (mSprCd)
        {
             if (mfCDTime >= mfSkillCDTime)
            {
                mSprCd.enabled = false;
                return true;
            }
            mfCDTime += Time.deltaTime;
             mSprCd.fillAmount = Mathf.Max(1.0f - mfCDTime / mfSkillCDTime, 0.0f);
            mSprCd.enabled = true;

        }
        return false;

    }
    void UpdateCdLabel ()//在Update更新函数调用
    {
         if (m_bIsCdTimer && mShowTime)
            {
                if ((Time.time - mCloseTime) > 1f && (mCloseTime > 0) && (	mCurTime > 0))
                {
                    mCloseTime = Time.time;
                    mCurTime = mCurTime - 1;
                      if (!mShowTime.active)
                          mShowTime.gameObject.SetActive(true);
                    mShowTime.text = mCurTime.ToString();
                    OnCloseCdTimer();
                }
            }
    }

    void OnStartCdTimer()//在播放技能后置CD和倒计时开始
    {
        if (mShowTime)
        {
            mCloseTime = Time.time;
            m_bIsCdTimer = true;

        }
	    if(mSprCd)
        {
            mfCDTime = 0;
        }

    }
    void OnCloseCdTimer()
    {
        if (mCurTime == 0)
        {
            m_bIsCdTimer = false;
            mCurTime = (int) mfSkillCDTime;
            mCloseTime = 0;
            mShowTime.text = "";
            if (mShowTime.active)
                mShowTime.gameObject.SetActive(false);
        }

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值