Unity C# | Time & time & deltaTime

更新於 2024/12/13閱讀時間約 2 分鐘

前言

  這篇文章將會講述時間系統,以及 time 和 deltaTime 兩個時間類型。

Time | 時間系統

  時間在遊戲中是舉足輕重的核心變數,分別為遊戲完整的時間和每幀時間。

time | 時間

  這是一個唯獨浮點數,自遊戲啟動以來的秒數,在 Awake() 期間並不會被定義,如果遊戲暫停,這個時間並不會繼續計時,通常用於遊戲中關於整場遊戲計時的計算。
  它在遊戲暫停的時候,也會隨之暫停,所以很適合用於競速類遊戲的倒數計時計算,如果希望記錄遊戲完整時間(包含暫停),在後面我們最講到這部分。

deltaTime | 每幀時間

  這是一個唯獨浮點數,值為上一幀到當前幀的間隔(以秒為單位),因此它會記錄每幀所花費的秒數,使用 Time.time
運用它的特性,我們可以用來製作計時器和倒數裝置,也能很好的紀錄某些技能的時間變化,是相當常用的一個變數。
  在使用 OnGUI 的時候不要使用 deltaTime,因為 Unity 可能每幀會多次呼叫它,因此要做 deltaTime 的累加會變得不準確。

Time.time | 時間

  這是一個唯獨浮點數,可以記錄時間,並檢查時間是否超過某個時間,運用這個方式,能製作出「當遊戲經過幾分鐘,觸發事件。」這種事情。

遊戲遊玩時間

  遊戲在遊玩的過程中,Time 會持續累加,因此只要監測這個值的變化就可以了,也可以直接運用這個值去做數值運算,不過因為是唯獨的關係並不能直接修改這個值。

遊戲實際時間

  如果希望取得包含暫停時間在內的所有遊戲實際時間,可以考慮使用另外一個變數「realtimeSinceStartup」,它會記錄遊戲從開始後的所有時間,很適合記錄遊戲實際時間。

Time.deltaTime | 每幀時間

  每一幀的時間,可以用於累加,產生不同的效果。

每幀時間

  當電腦的效能不同,時間的累加就會產生不同的數值,因此去算每幀時間的累加會比時間的監測更好用,同時,每幀時間也能製作出程式動畫的效果,因為它是每幀的秒數,所以可以寫每秒動幾公尺的做法下去寫。

計時器

  關於計時器,我之前有寫一篇文章很適合,詳情可以參考。

後記

  寫這篇文章意外的花不了多久的時間,可能是因為 deltaTime 本身就是相當常用的一個變數,所以只需要補齊相關的程式內容即可。

瓶裝雪

參考資料

《Unity API | Time.time》

《Unity API | Time.realtimeSinceStartup》

《Unity API | Time.deltaTime》

為什麼會看到廣告
avatar-img
105會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會講述企劃撰寫給程式員的邏輯流程圖。
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
這篇文章將會介紹企劃使用的文件格式與其特性。
這篇文章將會講述圓形波的設計思路、製作流程和應用方向。
這篇文章將會講述光元件的類型。
這篇文章將會講述彈簧物件的物件介紹、製作流程、展示影片。
這篇文章將會講述企劃撰寫給程式員的邏輯流程圖。
這篇文章將會講述 Unity Event 的介紹及基礎使用方法。
這篇文章將會介紹企劃使用的文件格式與其特性。
這篇文章將會講述圓形波的設計思路、製作流程和應用方向。
這篇文章將會講述光元件的類型。
這篇文章將會講述彈簧物件的物件介紹、製作流程、展示影片。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
深入探討變數、型別和方法 正確撰寫 C# 程式碼 基本語法規則 程式碼行就像句子一樣,需要有某種分隔或結束字符。每一行 C# 程式碼(稱為陳述式)必須以分號結尾,以便程式碼編譯器處理。 例如,一個簡單的變數可以這樣寫: ```csharp public string FirstNam
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
深入探討變數、型別和方法 正確撰寫 C# 程式碼 基本語法規則 程式碼行就像句子一樣,需要有某種分隔或結束字符。每一行 C# 程式碼(稱為陳述式)必須以分號結尾,以便程式碼編譯器處理。 例如,一個簡單的變數可以這樣寫: ```csharp public string FirstNam
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同