【发布时间】:2021-06-10 09:11:44
【问题描述】:
我的游戏中有一个计时器,可以计算直到游戏结束的时间。我不知道如何制作它,所以它只会在菜单场景处于活动状态时重置回 0(构建索引 0)。第二个问题是我不希望它在每次死亡(场景重新加载)后回到 0。你有什么建议吗?
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Timer : MonoBehaviour {
public Text TimerText;
public bool shouldCountTime;
public float t;
private void Start()
{
if (SceneManager.GetActiveScene().buildIndex != 0)
{
shouldCountTime = true;
}
else
{
shouldCountTime = false;
t = 0;
}
t = Time.deltaTime;
}
void Update()
{
if (shouldCountTime) {
t += Time.deltaTime;
}
string minutes = ((int)t / 60).ToString();
string seconds = (t % 60).ToString("f2");
TimerText.text = minutes + ":" + seconds;
}
}
【问题讨论】:
-
您可以使用sceneLoaded 事件来检查加载的场景并根据需要设置计时器。还要检查dontDestroyOnLoad 以使元素在场景之间保持不变。