Serialize序列化功能:
Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系;
简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能;
换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件;
Serializable :
用于自定义的,非abstract的class、struct、enum、delegate进行序列化;
SerializeField :
用于非public(如私有变量、保护变量)序列化;
//情况一:如果a是共有的序列化变量
//(1)如果你想在面板中看到变量a,那么:
public int a ;
//(2)如果你不想在面板中看到变量a,那么:
[HideInInspector] //表示将原本在面板中显示的变量隐藏起来。
public int a ; //a变量只能在代码中赋值,不能再面板中看到,也不能手动设置赋值。
//情况二:如果a是私有的序列化变量
//(1)如果你想在面板中看到变量a,那么:
[SerializeField]
private int a;
//情况三:自定义一个单独的class/struct
//(1)如果你想在面板中看到,那么:
[System.Serializable]
public class Func {
public int id = 1001;
public string name = "娃哈哈";
}