Unity3D开发学习之路--两种在Unity3D中创建倒计时器的方法

Unity3D开发学习之路–两种在Unity3D中创建倒计时器的方法

10月28日更新

第三种:使用协成的方法

void Start () {
        float time = 5;
        StartCoroutine (Timer(time));
    }

    public IEnumerator Timer(float time){
        while (time>0) {
            yield return new WaitForSeconds (1);
            print (time);
            time--;
        }
    }

第一种

txtTimer为Text组件

private float nextTime = 1;//一秒之后执行
private void Timer1()
{
 if (nextTime <= Time.time)
    {
        second--;//second为倒计时时间
        txtTimer.text = string.Format("{0:d2}:{1:d2}", second / 60, second % 60);
        nextTime = Time.time + 1;//到达一秒后加1
        if (second <= 0) this.enabled = false;
    }
}

第二种


private float totalTime = 0;
private void Timer2()
{
  //累加每帧消耗时间
    totalTime += Time.deltaTime;
    if (totalTime >= 1)//每过1秒执行一次
    {
        second--;
        txtTimer.text = string.Format("{0:d2}:{1:d2}", second / 60, second % 60);
        totalTime = 0;
    }
}   

两种方法都在Update中使用。

你可能感兴趣的:(Unity3D)