unity如何制作简易倒计时器

首先理清思路,计时器的核心要素是计时的总时长和时间间隔需要均匀一秒,要实现的功能是在总时长的基础上实现等时间间隔减秒,并且减到0后终止。

其中最为关键的问题就是怎么得到均匀的时间间隔1秒,所以我们需要知道:

  • Time.time 表示从游戏开发到现在的时间,会随着游戏的暂停而停止计算。
  • Time.timeSinceLevelLoad 表示从当前Scene开始到目前为止的时间,也会随着暂停操作而停止。

 所以,既然需要倒计时,那么Time.time就能实现基础的计时功能。

在此基础上,在Update()方法中用总时长减去Time.time就能实现倒计时功能。

在text文本显示之前判断是否减到了0,减到0就return中断,在此需要注意text的文本默认类型是字符串string类型,而unity的Time.time计时默认是浮点型,为了防止一大串数字在屏幕上乱跳所以我们需要显示的类型是int整形。

因此,需要先把计时的浮点类型转换为int类型,再把转换好的int整型转换为字符串string类型显示出来。

using UnityEngine;
using UnityEngine.UI;

public class timeLimit : MonoBehaviour {

    public Text timer;
    public int maxTime;   

    void Start()
    {
        maxTime = 20;
    }

    void Update()
    {
        if (Time.time >= maxTime)
        {
            return;
        }
        timer.text = ((int)(maxTime - Time.time)).ToString();
    }
}

具体操作:在外界创建好UI文本,把写好上述代码的脚本拖入text中或它的父层级,再把text文本拖入脚本组件的timer中,text里可以写总时长也可以清空,然后可以根据需要在Start()函数中修改maxTime的值即把自己需要的总时长进行初始化。

猜你喜欢

转载自blog.csdn.net/knight209208/article/details/128535379