Unity C# | Tip 1:static 靜態欄位妙用

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

前言

  這篇文章將會講述 static 的小技巧,讓常用的欄位不用重複指定或拖拉。

Static | 靜態變數

  在程式設計的環節,我們有一些變數固定不變,這個時候我們會添加上關鍵字 static 讓它變成靜態變數,這種變數不會被任何東西改變,雖然說 Unity 有內建,不過假設需要圓周率,就可以把它變成靜態變數,這種情況它就不會被任何東西改變期內容。

預期用法

  因此靜態變數聽起來很適合那些重複使用但永遠不會改變的東西,譬如說程式腳本,我們可以讓程式腳本的宣告變成靜態變數,之後就可以在其他程式腳本中抓取這個靜態變數,不需要重新指定。

問題困境

  我在第一次嘗試的時候,發現靜態變數的資料會完全從程式腳本中消失,也不會顯示在 Inspector 中,花了滿長一段時間後放棄了,直到某一天有人跟我分享一個作法,也就是今天的小技巧。

小技巧 | 程式腳本靜態化

  會顯示在 Inspector 中的資料,只有 public 或 序列化的 private ,靜態變數並不會顯示在裡面,然而我們可以把程式腳本序列化。

步驟

1. 創建一個程式腳本,命名為 GameMannager。

2. 創建一個 GameMannager 的靜態欄位,命名為 gameMannager。

3. 使用 Awake(); 函式,讓 gameMannager 抓取自己。

4. 創建 public 欄位,這可以是任何變數 (程式腳本、遊戲物件、組件等等)。

5. 在 Unity Inspector 中指定對象。

6. 完成,當我們新增程式腳本,都可以直接呼叫 GameMannager 的公用變數「GameMannager.gameMannager.(公用變數)」呼叫,不需要重複指定。

後記

  最近很忙,之後應該會好一點,這次是把我學習到的一個很重要的小技巧給分享上來,如果很常查看 Youtube 的教學應該會知道,這是我同學分享給我的一個技巧,我覺得不錯就寫成文章了。

瓶裝雪

想了解我更多嗎?






留言
avatar-img
留言分享你的想法!
Neish-avatar-img
2022/11/05
另外你同學的這個做法就是簡易的singleton pattern, 如果想要了解更多的話可以參考這篇: https://gameprogrammingpatterns.com/singleton.html
瓶裝雪-avatar-img
發文者
2023/01/01
感謝你,我作品集不知道程式該怎麼呈現,把singleton pattern放進去當作作品集說明了了XD
Neish-avatar-img
2022/11/05
Math.PI (圓周率)也是被宣告成const: https://learn.microsoft.com/en-us/dotnet/api/system.math.pi?view=net-7.0 只是他是static class Math的const
Neish-avatar-img
2022/11/05
你可能搞混了static和const. static variable的值是可以被改變的,不能改的是const或readonly
瓶裝雪-avatar-img
發文者
2022/11/06
啊!我知道唯獨XD
avatar-img
瓶裝雪的沙龍
108會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
Thumbnail
這篇文章將會分享 Clean Code 關於函式的重點,內容主要以個人閱讀後有印象的部分著手,有興趣了解更多請自行購買這本書。
Thumbnail
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
Thumbnail
這篇文章將會講述 Inspector 的簡易優化小技巧,並介紹系列文章。
Thumbnail
這篇文章將會講述 static 的小技巧,讓常用的欄位不用重複指定或拖拉。
Thumbnail
這篇文章將會講述 static 的小技巧,讓常用的欄位不用重複指定或拖拉。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
Thumbnail
前言   這篇文章將會介紹生成物件的五種多載說明和三種應用流程。 Instantiate | 生成遊戲物件   這個英文單字的中文翻譯為「實例化」,如果單純用於 GameObject 的話你可以叫他生成物件,不過 Instatiate 還有其他的功用,像是 Clone 腳本和泛型化,這個就不在我們今
Thumbnail
這一篇文章將會從Microsoft的.NET Class Library開始介紹,在介紹具狀態和不具狀態,以及物件和new關鍵字。
Thumbnail
這一篇文章將會從Microsoft的.NET Class Library開始介紹,在介紹具狀態和不具狀態,以及物件和new關鍵字。
Thumbnail
本文章將會介紹結構(Struct)的定義、簡單介紹其應用,並且補充與序列化(SerializeFile)結合的方式。
Thumbnail
本文章將會介紹結構(Struct)的定義、簡單介紹其應用,並且補充與序列化(SerializeFile)結合的方式。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
撰寫程式,如何命名很重要,本文舉例了兩種廣泛使用的命名法則,同時收錄了好程式的判斷依據和減少資源浪費的撰寫方式。
Thumbnail
撰寫程式,如何命名很重要,本文舉例了兩種廣泛使用的命名法則,同時收錄了好程式的判斷依據和減少資源浪費的撰寫方式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News