2016-02-12 29 views
0

我試圖使GameClock像真正的時鐘一樣,但具有自定義時間。 時鐘正在運行,但它延遲,我找不到問題。感謝幫助。用自定義時間創建遊戲時鐘

IEnumerator Start() 
{ 
    while (true) { 
     Sec = DateTime.Now.Second; 
     if (Hour == 23 && Min == 59 && Sec == 0){ 
      Hour = 0; 
      Min = 0; 
     } else if (Min == 59 && Sec == 0){ 
      Min = 0; 
      Hour += 1; 
     } else if (Sec == 0) { 
      Min += 1; 
     } 
     yield return new WaitForSeconds (1f); 
    } 
} 
+1

你是什麼意思與「延遲」?它以某種方式延遲你的程序嗎?你怎麼稱呼這個代碼? –

+0

延誤是什麼意思,是指每小時每小時1分鐘和每天24分鐘延遲1小時。 –

+0

你知道你有一些延遲,因爲計時器的異步性,對吧? –

回答

2

我認爲它應該像

while (true) { 
    Sec = DateTime.Now.Second; 
    if (Hour == 23 && Min == 59 && Sec == 59){ 
     Hour = 0; 
     Min = 0; 
    } else if (Min == 59 && Sec == 59){ 
     Min = 0; 
     Hour += 1; 
    } else if (Sec == 59) { 
     Min += 1; 
    } 
    yield return new WaitForSeconds (1f); 
} 
+1

如果您*顯示*更改(標記它們):如果是文字或作爲代碼註釋,那將會很好。爲什麼OP代碼不起作用(出錯的原因)的一些解釋也不錯。 – Sinatr

+0

我以前用這種方式使用過這個代碼,用了59秒。但延遲是相同的。 –

1

我不知道爲什麼你在做這些工作時,你可以打印出輕鬆:

Debug.Log(System.DateTime.Now.ToString("hh:mm:ss")); 
    Debug.Log(System.DateTime.Now.Hour.ToString()); 
    Debug.Log(System.DateTime.Now.Minute.ToString()); 
    Debug.Log(System.DateTime.Now.Second.ToString()); 
+0

我不能在我的代碼中使用系統小時或分鐘。 –

+0

哦,這聽起來像一個學校作業:)。 – Everts

+0

這是我個人的研究。 –