首先理清思路,计时器的核心要素是计时的总时长和时间间隔需要均匀一秒,要实现的功能是在总时长的基础上实现等时间间隔减秒,并且减到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类型显示出来。文章来源:https://www.toymoban.com/news/detail-585753.html
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的值即把自己需要的总时长进行初始化。文章来源地址https://www.toymoban.com/news/detail-585753.html
到了这里,关于unity如何制作简易倒计时器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!