在檢視器中顯示變數的神奇語法
什麼?你想讓變數顯示在檢視器中?我完全懂!變數真的超級好用呢!
讓我來介紹讓變數可以顯示在檢視器中的語法。
簡單來說,就是 public
。
以下用範例來說明。
@加上 public
真的很方便
using System;
using System.Collections.Generic;
using UnityEngine;
public class TestScript : MonoBehaviour
{
public int Int;
public float Float;
public double Double;
public bool Bool;
public char Char;
public string String;
public List<int> list;
public int[] Array = new int[] {1, 2};
}
注意
使用 List 類型變數或陣列型變數(如上面範例中的 int[]
),一定要加上:
using System;
using System.Collections.Generic;
如果漏掉這行,會發生錯誤,導致無法正常執行。
假設你寫了以上程式碼,執行後—變數顯示出來—結果如下:
雖然 int[]
沒有顯示出來,但執行結果大概就像這樣。(List 是在檢視器中手動添加的。)
其中的秘密,正如之前提到的,就是 public
。
這段程式碼不僅可以讓變數對其他類別公開,還能顯示在檢視器中,真的是一大優點。
public
和 [SerializeField]
有何不同?
在類似的功能中,還有 [SerializeField]
。
它的用法很簡單,只需要將 public
換成 [SerializeField]
。
[SerializeField]
的使用情境如下:
- 想讓資訊顯示在檢視器中。
- 不希望其他腳本意外修改這些值。
在多人合作開發時,這個功能特別有用。例如:
A 和 B 正在合作開發一個專案。
但 A 和 B 各自負責不同的腳本。
A 想在檢視器中顯示一些資訊,於是寫了以下程式碼:public float Object_Hearth;
實際上,A 並不想公開變數
Object_Hearth
,但 B 認為「Object_Hearth
很有用」,於是將它整合到自己負責的腳本中。
結果,專案出了問題。
為了避免這種遺憾的情況,[SerializeField]
就派上用場了。 1
順帶一提,A 知道這件事後,將程式碼修改如下:
[SerializeField] private float Object_Hearth;
//使用 `private` 表明不希望該物件被使用或存取。
總結
今天,我們討論了 public
和 [SerializeField]
。
-
public
適合在檢視器中顯示變數,同時讓變數可以被其他腳本使用。 -
[SerializeField]
適合在檢視器中顯示變數,但不希望變數被其他腳本使用。
有任何問題,隨時歡迎提問!我會盡力解答。
Translated with Bing AI