您好我编写了一个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));
编译脚本时出现警告&#39;私有字段`GlobalCountDown.TotalTime&#39;已分配,但其值从未使用过&#39;但我不确定如何解决它。
任何帮助或建议将不胜感激。
答案 0 :(得分:2)
更改此
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代码