首先理清思路,计时器的核心要素是计时的总时长和时间间隔需要均匀一秒,要实现的功能是在总时长的基础上实现等时间间隔减秒,并且减到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的值即把自己需要的总时长进行初始化。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: