前往
大廳
主題

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

瓶裝雪 | 2022-11-04 19:00:02 | 巴幣 14 | 人氣 419

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

瓶裝雪



送禮物贊助創作者 !
0
留言

創作回應

瓶裝雪
結果我自己複習資料竟然是找自己的資料最快XD
2023-03-05 23:48:15

更多創作