[Unity3D Daily] Implementa un temporizador y una herramienta de cuenta regresiva

1. Introducción

Hoy compartiré cómo hacer una herramienta de temporizador basada en Unity3D. Para facilitar la demostración, se utiliza el texto UGUI. El código es simple y ampliable. Luego, si tiene algún error o comentario, por favor invíteme a presentarlo. El código QR de WeChat se ha mostrado en la página de inicio del blog. Si desea comunicarse y aprender, puede agregarlo si externaliza el proyecto.

Comparta otro artículo sobre el conteo de tiempo:
[Unity3D] Obtenga el tiempo del juego y muéstrelo

Segundo, el cuadro de efectos

Efecto temporizador Efecto de
Inserte la descripción de la imagen aquí
cuenta regresiva
Inserte la descripción de la imagen aquí

En tercer lugar, este enlace del artículo

Enlace a este artículo: https://blog.csdn.net/q764424567/article/details/103784853
Descarga del código fuente del proyecto GitHub: https://github.com/764424567/Demo_Timer

Cuarto, el código

using UnityEngine;
using UnityEngine.UI;

public class Test_1 : MonoBehaviour
{
    string m_Mins = "0";
    string m_Sec = "0";
    float m_TempMins = 0;
    float m_TempSec = 0;
    bool m_IsTimed = true;
    bool m_IsCountDown = true;

    private void Awake()
    {
        //计时器
        //SetTimed("00:00");

        //倒计时
        SetTimed("10:00");
        string TimeStr = transform.GetComponent<Text>().text;
        string[] TimeStrSplit = TimeStr.Split(':');
        m_TempMins = float.Parse(TimeStrSplit[0]);
        m_TempSec = float.Parse(TimeStrSplit[1]);
        m_IsCountDown = false;
    }

    private void FixedUpdate()
    {
        if (m_IsCountDown)//计时器
        {
            if (m_IsTimed)
            {
                if (transform.GetComponent<Text>().text == "09:59")
                {
                    transform.GetComponent<Text>().text = "10:00";
                    m_Mins = "00";
                    m_Sec = "00";
                    m_TempMins = 0;
                    m_TempSec = 0;
                    m_IsTimed = false;
                }
                else
                {
                    if (m_TempSec >= 9)
                    {
                        m_Sec = (m_TempSec += 1).ToString();
                        if (m_TempSec == 60)
                        {
                            m_Sec = "00";
                            m_TempSec = 0;
                            m_TempMins += 1;
                        }
                    }
                    else
                    {
                        m_Sec = "0" + (m_TempSec += 1).ToString();
                    }
                    m_Mins = "0" + m_TempMins.ToString();
                    transform.GetComponent<Text>().text = m_Mins + ":" + m_Sec;
                }
            }
        }
        else//倒计时
        {
            if (m_IsTimed)
            {
                if (m_TempSec <= 10)
                {
                    if (m_TempSec == 0)
                    {
                        if (m_TempMins == 0)
                        {
                            transform.GetComponent<Text>().text = "00:00";
                            m_IsTimed = false;
                        }
                        else
                        {
                            m_TempSec = 60;
                            m_TempMins -= 1;
                            if (m_TempMins <= 10)
                            {
                                
                                m_Mins = "0" + m_TempMins.ToString();
                            }
                            else
                            {
                                m_Mins = m_TempMins.ToString();
                            }
                        }
                        m_Sec = m_TempSec.ToString();
                    }
                    else
                    {
                        m_Sec = "0" + (m_TempSec -= 1).ToString();
                    }
                }
                else
                {
                    m_Sec = (m_TempSec -= 1).ToString();
                }
                transform.GetComponent<Text>().text = m_Mins + ":" + m_Sec;
            }
        }
    }

    public void SetTimed(string time)
    {
        transform.GetComponent<Text>().text = time;
    }
}

226 artículos originales publicados · 509 elogiados · 530,000 vistas

Supongo que te gusta

Origin blog.csdn.net/q764424567/article/details/103784853
Recomendado
Clasificación