Unity C# | timeScale & unscaledTime

Unity C# | timeScale & unscaledTime

更新於 發佈於 閱讀時間約 3 分鐘

前言

  這篇文章將會講述子彈時間、暫停時間相關的時間規模。

Time

  我有寫過兩篇關於遊戲時間的文章,有興趣可以參考看看。

《Unity C# | Time & time & deltaTime》

《Unity C# | 每禎時間Time.deltaTime & 基礎計時器》

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() 的運作模式,如下圖:

raw-image

  當我們調整更新模式以後,這個動畫編輯器的更新模式就是使用不受遊戲內時間控管,那怕遊戲進入暫停,依然會持續運作與更新。

後記

  這篇文章是我研究暫停介面的延伸文章,雖然我以為內容沒有很豐富,不過這樣細寫下來,也不失為一個好文章,因為它把該介紹的內容都介紹了。

瓶裝雪

想了解我更多嗎?

參考資料

《Unity API | Time.timeScale》

《Unity API | Time.unscaledTime》

avatar-img
瓶裝雪的沙龍
108會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言
avatar-img
留言分享你的想法!
瓶裝雪的沙龍 的其他內容
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
這篇文章將會講述 static 的小技巧,讓常用的欄位不用重複指定或拖拉。
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
這篇文章將會藉由企劃的角度去看企劃、程式、美術三者的合作方式,以及如何有效率的開發一款遊戲專案。
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
這篇文章將會講述 static 的小技巧,讓常用的欄位不用重複指定或拖拉。
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
這篇文章將會藉由企劃的角度去看企劃、程式、美術三者的合作方式,以及如何有效率的開發一款遊戲專案。
前言   這篇文章將會講述碰撞事件的撰寫,跟碰撞事件有關的函式共有六種,分別為 OnCollisionEnter/Stay/Exit 和 OnTriggerEnter / Stay /Exit ,本篇文章將會講述通用的邏輯。 Collider | 碰撞體   在之前我從組件(Component)和程
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今