Serialize功能
Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系。
简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能。
换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件。
本文说说可被Serialize的变量的定义方法
1. public 变量
在没有加入任何Attribute的前提下,public变量是默认被视为可以被Serialize的。所以public声明的变量在Inspector面板中是可见的。
public int MaxExp;
2. [SerializeField] Attribute
强制unity去序列化一个私有域
这是一个内部的unity序列化功能,有时候我们需要Serialize一个private或者protected的属性,这个时候可以使用[SerializeField]这个Attribute:
[SerializeField]
protected int foobar = 0;
注意: 这样定义出的成员变量也是会在Inspector中显示出来。
在Unity最新的UI系统中,UI属性上方全部添加[SerializeField] ,如下所示
[SerializeField]
private int ID;