當前位置:成語大全網 - 新華字典 - Unity中HideInInspector和SerializeField壹起使用

Unity中HideInInspector和SerializeField壹起使用

我看不懂妳這段代碼的意思,不知道妳需要的是什麽功能。妳可以看看以下我打得總結

首先,Unity會自動為Public變量做序列化,序列化的意思是說再次讀取Unity時序列化的變量是有值的,不需要妳再次去賦值,因為它已經被保存下來。

然後是,什麽樣的值會被顯示在面板上?

已經被序列化,但是沒有用HideInInspector標記的值。

[HideInInspector]表示將原本顯示在面板上的序列化值隱藏起來。

[SerializeField]表示將原本不會被序列化的私有變量和保護變量可以序列化,這麽他們在下次讀取時,就是妳上次賦值的值。

1如果a是公有的序列化變量。

1.1如果妳想要在面板中看到a,那麽用:

public int a;

1.2如果妳不想在面板中看到a,那麽用:

[HideInInspector]

public int a;

// 這樣a可以在程序中被代碼賦值,但不會在面板中看到並手動設置賦值。

2 如果a是私有的序列化變量,妳想在面板中讀取並保存,那麽用:

[SerializeField]

private int a;

3.如果a是私有的序列化變量,妳想在面板中讀取,但是不保存,那麽用:

[HideInInspector][SerializedField]

private int a;

public int b{

get{return a;}

}

然後在Editor中顯示,

EditorGUILayout.LabelField("value",game.B.ToString());

4如果a是私有序列化變量,妳不想在面板中做任何操作(不想看到,也不想寫),但是想要在程序中給它賦值,那麽用。

[HideInInspector][SerializedField]

private int a;

public int b{

get{return a;}

set{a = value;}

}