Unity3D_UGUI倒計時_比較精准的倒計時


可能倒計時的功能太簡單了,沒有找到關於倒計時的博客參考,所以本人自己寫了倒計時的功能,希望能幫助做Unity的小伙伴們繞過一些坑。

實現效果如下:

Hierarchy 面板層級關系:

 

 將C#腳本掛載到“Text_CounDown”上運行,即可實現如圖所示功能。

C#腳本如下:

using UnityEngine;
using UnityEngine.UI;

public class UserSystem : MonoBehaviour
{
    // 用於現實倒計時的 UI 組件
    private Text counDown;
    // 用於積累時間(累加 Time.deltaTime)
    private float timeFloat;
    // 需要倒計時多長時間(以 分 為單位)
    [Range(0f, 10f)]
   public float min = 5.05f; // 用於顯示倒計時的分鍾數 private int minInt; // 用於顯示倒計時的秒數 private int secondInt; private void Start() { // 得到用於現實倒計時的 UI 組件 counDown = transform.Find("Text_CountDown").GetComponent<Text>(); // 賦值分鍾數 minInt = (int)min; // 賦值秒數(分鍾數為 0 時需要判斷,否則除數為 0 會報錯)
       if (minInt == 0) secondInt = (int)(min * 60);
       else secondInt = (int)((min % minInt) * 60);
// 賦值倒計時秒數的初始值
        timeFloat = 60 - secondInt;
    }
    private void Update()
    {
        // 倒計時秒數降到 0 以下時,分鍾數下降 1
        if(60 - timeFloat < 0)
        {
            // 更新秒數
            timeFloat -= 60f; // 分鍾數下降 1 minInt--; // 當倒計時為 0 時,調用一個方法 或 切換場景 if (minInt < 0) { // TODO  } }
        // 累加時間(將倒計時的誤差降到最低)
        timeFloat += Time.deltaTime;
        // 更新 秒數
        secondInt = (int)(60 - timeFloat);
        
        counDown.text = minInt.ToString("00") + "" + secondInt.ToString("00");
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM