Unity暫停游戲功能


關於暫停游戲功能的做法,
網上的教程以及Unity官方發布的Demo都是通過把Time.timeScale設成0來實現的,
然而這會導致一些蛋疼的問題,
因為Time.timeScale是全局變量,
改成0后UI動畫,粒子特效啥的就全都撲街了,
雖然可以通過改Update函數來打補丁,
但是對於我這種有代碼潔癖的人來說,
這實在是一個既蛋疼又難看的搞法,
另外,把Time.timeScale設成0以后,
只是把FixedUpdate停下來了,
但Update還是會調用,
這樣可能出現一些詭異的邏輯問題,
然后還要浪費CPU去跑沒用的代碼太不環保了,
真心搞不懂Unity的程序猿為啥要把這個很簡單的問題搞得這么復雜,
這個功能隨便用腳趾頭都能想出很多簡單又好用的辦法,
例如加個功能可以在對象上打個標記或者設個狀態,
然后在引擎Update的時候不調用該對象及其子對象的Update相關函數就可以了,
可惜這玩意沒源碼,
不然花兩分鍾時間就改好了,
目前想到的辦法是弄一個全局暫停變量,
在所有腳本的Update相關函數里判斷這個變量是否為true,
如果為true就直接return,
雖然寫起來稍微麻煩點,
但是代碼比較明確,
省CPU也不容易出錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM