什么是序列化
序列化是一种用来处理对象流的机制,所谓对象流就是将对象内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。
序列化作用
在Unity中序列化有以下3个作用:
- 可以显示变量(类,结构等)在inspector(检视面板)上
- 数据持久化
- 网络传输
序列化规则
- 访问修饰符是 public,或者具有 SerializeField 特性
- 非 static
- 非 const
- 可以被序列化的字段类型
- 基础数据结构(int, float, double, bool, string 等)
- 枚举(32 位 或 以下)
- 固定大小的缓冲区
- Unity 内置类型(Vector2, Vector3, Rect, Color, Matrix4x4等)
- 具有 Serializable 特性的 结构 与 类
- 派生自 UnityEngine.Object 的对象引用(如 MonoBehaviour, ScriptableObject)
- Array,与 List<T> 容器(包含数据类型必须可以被序列化才行,只支持一维,不支持嵌套容器,多维数组)