前言
這篇文章將會講述子彈時間、暫停時間相關的時間規模。
Time
我有寫過兩篇關於遊戲時間的文章,有興趣可以參考看看。
timeScale | 時間流逝的尺度
Scale 在英文中有《尺度,刻度;等級》和《大小;規模;範圍》的涵義在內,在 Untiy 中,timeScale 是嫆於控制遊戲整體時間運作快慢的一個變數。
時間快慢
當 TimeScale=0 的時候,遊戲內一切都會停止,包含動畫、程式等等,遊戲會靜止在這一剎那;當 TimeScale =0.5 的時候,就會像子彈時間一樣,遊戲世界的時間速度會減半,形成類似子彈時間的世界。
時間類型
在時間中有兩種類型,分別為 deltaTime 和 time ,時間流逝也同樣控管這兩種時間類型,當遊戲暫停的時候,deltaTime 會歸零,time 會停止累加。
常見問題
在我第一次使用 TimeScale 的時候,我發現時間暫停是暫停了,但是暫停介面的動畫也停止了,這導致根本無法做其他的撰寫,接下來會介紹另一個相對的變數,叫做《unscaledTime》。
unscaledTime | 沒有尺度的時間
聽起來很酷,是吧?其實在講真實時間,也就是不受規模影響的時間,通常會搭配 TimeScale 進行撰寫或使用。
真實時間
雖然我不知道為什麼不是命名為《timeUnscaled》,不過這個變數是用於不受規模影響的時間,如果遊戲中不涉及暫停,那就完全不需要使用到這個變數才對。
唯獨 | ReadOnly
有一點注意的事情,Time.timeScale 在遊戲中是一個可以被設計師修改的變數,而Time.unscaledTime 是一個不能被修改的唯獨變數,因此我們是不能修改 unscaledTime 的數值。
動畫編輯器 | Animator
動畫腳本中可以調整 Update() 的運作模式,如下圖:
當我們調整更新模式以後,這個動畫編輯器的更新模式就是使用不受遊戲內時間控管,那怕遊戲進入暫停,依然會持續運作與更新。
後記
這篇文章是我研究暫停介面的延伸文章,雖然我以為內容沒有很豐富,不過這樣細寫下來,也不失為一個好文章,因為它把該介紹的內容都介紹了。
瓶裝雪
參考資料