2016-07-28 47 views
0

嗨我有一个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”分配时,但其值从未使用过”,但我不知道如何解决它得到一个警告。

任何帮助或建议,将不胜感激。

回答

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类中删除的场景管理器代码