2022-11-04|閱讀時間 ‧ 約 3 分鐘

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

前言

  這篇文章將會講述 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 的教學應該會知道,這是我同學分享給我的一個技巧,我覺得不錯就寫成文章了。

瓶裝雪

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.