什么是序列化
序列化是一种用来处理对象流的机制,所谓对象流就是将对象内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。
序列化的作用
在Unity中序列化有以下3个作用:
- 可以显示变量(类,结构等)在inspector(检视面板)上
- 数据持久化
- 网络传输
序列化关键字
- Serializable: 用于 自定义的,非 abstract 的类. 结构体等 , 使这类型也能序列化
- SerializeField: 用于 非public 类型(如private), 使非public 类型也能序列化
哪些可被序列化
-
public 类型,或者有 [SerializeField]
-
不是 static
-
不是 const
-
不是 readonly
-
类型必须是 Unity 可以序列化的类型
可以被Unity序列化的类型
-
自定义的,非 abstract 的类,且有 [Serializable]
-
有 [Serializable] 的结构体
-
UnityEngine.Object 的子类的引用
-
原生类型(int,float,double,bool,string, etc)
-
以上类型的数组
-
以上类型的 List