2016-07-28 12 views
0

안녕하세요 저는 다른 장면 사이에 남은 시간을 추적하기 위해 다른 스크립트 내부에서 호출 할 수있는 C# 스크립트를 작성한 다음 타이머가 0에 도달하면 장면을로드합니다. 두 스크립트가 올바르게 작성되었지만 타이머가 0에 도달했을 때 아무런 조치도 취하지 않는다고 생각하면 올바른 위치에 코드를 삽입하지 않는다고 생각하지만 실제로는 모르겠다. 추가를 시도했다. 내 시작 기능과 내 업데이트 기능 모두.Unity 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.TotalTime'를 컴파일하지만, 그 값이 사용되지 않는 '하지만 그것을 해결하는 방법을 잘 모르겠습니다 때

GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5)); 

나는 경고를 얻을.

도움이나 조언을 보내 주시면 감사하겠습니다.

답변

2

변경 당신의 행동이

var result = TotalTime - (DateTime.UtcNow - TimeStarted); 

var result = DateTime.UtcNow - TimeStarted; 

void Start() 
{ 
    GlobalCountDown.StartCountDown (TimeSpan.FromSeconds (5)); 
} 

void Update() 
{ 
    if (GlobalCountDown.TimeLeft == TimeSpan.Zero) 
     SceneManager.LoadScene("Lose"); 
} 

을하고 GlobalCountDown 클래스에서 씬 매니저 코드를 제거