统一C#倒计时持续通过场景
问题描述:
嗨我有一个C#脚本编写,然后我可以在另一个脚本内调用,以跟踪不同场景之间剩余的时间量,然后加载一个场景,当计时器达到0。相信这两个脚本的写入都是正确的,但是当定时器达到0时没有任何动作,我认为问题在于我没有将代码放在正确的位置,但我不确定,我尝试添加它到我的启动功能和我的更新功能。统一C#倒计时持续通过场景
这里是静态类的脚本;
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类中删除的场景管理器代码