Unity C#倒计时持续到场景
本文关键字:倒计时 Unity | 更新日期: 2023-09-27 17:59:10
嗨,我写了一个C#脚本,然后我可以在另一个脚本中调用它来跟踪不同场景之间的剩余时间,然后在计时器达到0时加载一个场景。我相信这两个脚本都写得正确,但当计时器达到0时没有任何操作,我认为问题是我没有将代码放在正确的位置,但我真的不确定,我已经尝试将它添加到我的启动函数和更新函数中。
这是静态类的脚本;
public static class GlobalCountDown
{
static DateTime TimeStarted;
static TimeSpan TotalTime;
public static void StartCountDown(TimeSpan totalTime)
{
TimeStarted = DateTime.UtcNow;
TotalTime = totalTime;
}
public static TimeSpan TimeLeft
{
get
{
var result = DateTime.UtcNow - TimeStarted;
if (result.TotalSeconds <= 0)
SceneManager.LoadScene("Lose");
return TimeSpan.Zero;
//return result;
}
}
}
这是我在每个游戏场景中打电话检查剩余时间;
GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5));
在编译脚本时,我收到了一个警告"指定了专用字段"GlobalCountDown.TotalTime",但从未使用过它的值",但我不确定如何修复它。
如有任何帮助或建议,我们将不胜感激。
更改此
var result = DateTime.UtcNow - TimeStarted;
到此
var result = TotalTime - (DateTime.UtcNow - TimeStarted);
在你的行为中做这个
void Start()
{
GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5));
}
void Update()
{
if (GlobalCountDown.TimeLeft == TimeSpan.Zero)
SceneManager.LoadScene("Lose");
}
并从GlobalCountDown类中删除SceneManager代码