[Serializable]将类的实例持久化保存,可以保存在本地,也可以保存在别处。
unity中的SerializeField(序列化)
Unity会自动为Public变量序列化(再次读取Unity时序列化的变量是有值的,不需要再次去赋值,因为它已经被保存下来了。)
什么样的值可以显示在面板上?
已经被序列化,但是没有用[HideInInspector]标记的值
- 如果a是公有的序列化变量
想在面板上看到a,那么用:
public int a;
不想在面板上看到变量a,那么用:
[HideInInspector]
public int a;
a可以在程序中被赋值,但不能显示在面板上,也不能手动赋值。
2.a是私有的序列化变量,想在面板上读取并赋值,那么用:
[SerializeField]
private int a;
3.a是私有的序列化变量,可以在面板上读取,但是不能被赋值,那么用:
[HideInInspector] [SerializeField]
private int a;
public int b{get{return a;}}
4.a是私有序列化变量,不想在面板上做任何操作(不想看到,不想写),但是想在程序中给它赋值,那么用:
5.[HideInInspector] [SerializeField]
private int a;
public int b{get{return a;}set{a=value;}}
一些函数的使用说明
DotDestroyOnLoad(Object target):加载新界面的时候不被删除
PlayerPrefs.Delete():删除PlayerPrefs中记录的所有数据