Unity实现2分钟倒计时并且最后10秒钟字体变红效果

在实现这个效果之前,我们需要UnityEngine.UI这个命名空间,因为我们需要用到Unity UI中的Text组件,在Hierarchy面板右键就可以找到。以下是源码:

public class CountdownDemo : MonoBehaviour
{
    int Countdown = 120;        //总时间
    int minute;
    int second;
    int clock = 0;
    float ctime = 0;            //保存deltaTime和 一秒显示一次
                               
    private void DownTime()     //DownTime方法计算显示的分钟和秒数
    {
        Countdown = Countdown - 1;
        minute = Countdown / 60;
        second = Countdown - 60 * minute;
    }
    private void Update()
    {

        ctime = ctime + Time.deltaTime;
        if (Countdown > 0)  
        {
            if ((int)ctime == 1)
            {
                DownTime();
                string s = clock.ToString("D2")+":"+minute.ToString("D2") + ":" + second.ToString("D2");
                GameObject.Find("Canvas/Text").GetComponent().text = s;
                ctime = 0;
                if (Countdown == 10)        //当最后十秒后会变红显示
                {
                    GameObject.Find("Canvas/Text").GetComponent().color = Color.red;
                }
            }
        }

    }
}

你可能感兴趣的:(unity)