繁体   English   中英

Unity C#倒计时在场景中持续存在

[英]Unity C# countdown to persist through scenes

嗨,我编写了一个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代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM