我必須在Unity3d場景中顯示完整的24小時週期。 不同類型的任務將在不同的時間執行。不同的代碼執行不同的時間事件
假設
- 下午2點我必須移動車,
- 下午6點的飛機將在下午7點07分在機場
- 的土地,我要打開市場的建築 門
- 等不同的任務/作品在不同的時間執行。
現在,我有一些基本的動畫,如汽車,飛機和門等。現在我很迷惑,根據時間如何播放和停止我的動畫。而且時間也可以用 用GUI手動更改。如果當前下午6點(動畫工作),則用戶可以切換到上午8點以查看上午8點的動畫。用戶還可以加快計時,以便在一分鐘或一小時內查看完整的小時數。
我可以使用的if/else在更新活動,但我想這不是正確的方式做,將是很難,如果我需要顯示在不同時間的作品 的顯著數持續時間(這意味着大量的if/else語句)。就像下面那樣
void Update(){
if(time =1){
//logic
}
if(time =2){
//logic
}
if(time =3){
//logic
}
...//so on, tedious way
...//and also not possible if time require between the hours, suppose 06:06pm
}
怎麼辦?如何處理這個?
你爲什麼這麼說:'如果陳述是最不專業的'? – rhughes
,因爲我認爲我可以在這個函數上弱引用[OOP Message Passing](https://en.wikipedia.org/wiki/Object-oriented_programming#Dynamic_dispatch.2Fmessage_passing) - 「這是對象的責任,而不是外部代碼,以'按需'選擇程序代碼以響應方法調用而運行/執行「。在你的情況下,時間管理器類是調用你的方法的「外部代碼」。有非硬編碼的方法調用來保持重命名的自由,添加和刪除要調用的方法是很好的。另外,如果語句總是導致巨大的代碼。 –
我認爲他的意思是在這種情況下,你最終得到24條陳述。他也可以提到會導致相同的開關。使用委託可以不超過5行。 – Everts