0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity - 我想在檢視器中顯示變數!~ 關於 public 和 [SerializeField] ~

Posted at

在檢視器中顯示變數的神奇語法

什麼?你想讓變數顯示在檢視器中?我完全懂!變數真的超級好用呢!
讓我來介紹讓變數可以顯示在檢視器中的語法。

簡單來說,就是 public
以下用範例來說明。

@加上 public 真的很方便

Test.cs
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;

如果漏掉這行,會發生錯誤,導致無法正常執行。

假設你寫了以上程式碼,執行後—變數顯示出來—結果如下:

Screenshot 2025-03-22 191300.png

雖然 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

  1. 參考網站:【初心者Unity】[SerializeField]ってなに? | TECH PROjin

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?