1. 程式人生 > 實用技巧 >Unity3D_UGUI倒計時_比較精準的倒計時

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; // 需要倒計時多長時間(以 分 為單位) 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; // 賦值秒數 secondInt = (int)((min % minInt) * 60); // 賦值倒計時秒數的初始值 timeFloat = 60 - secondInt; } private void Update() { // 累加時間(將倒計時的誤差降到最低) timeFloat += Time.deltaTime; // 更新 秒數 secondInt = (int)(60 - timeFloat);
// 倒計時秒數降到 0 以下時,分鐘數下降 1 if(60 - timeFloat < 0) { // 更新秒數 timeFloat -= 60f; // 分鐘數下降 1 minInt--; // 當倒計時為 0 時,呼叫一個方法 或 切換場景 if (minInt < 0) { // TODO } } counDown.text = minInt.ToString("00") + "" + secondInt.ToString("00"); } }