Unity之序列化

最后更新于 2022-09-22 841 次阅读


什么是序列化

序列化是一种用来处理对象流的机制,所谓对象流就是将对象内容进行流化,将数据分解成字节流,以便存储在文件中或在网络上传输。

序列化作用

在Unity中序列化有以下3个作用:

  1. 可以显示变量(类,结构等)在inspector(检视面板)上
  2. 数据持久化
  3. 网络传输

序列化规则

  • 访问修饰符是 public,或者具有 SerializeField 特性
  • 非 static
  • 非 const
  • 可以被序列化的字段类型
  • 基础数据结构(int, float, double, bool, string 等)
  • 枚举(32 位 或 以下)
  • 固定大小的缓冲区
  • Unity 内置类型(Vector2, Vector3, Rect, Color, Matrix4x4等)
  • 具有 Serializable 特性的 结构 与 类
  • 派生自 UnityEngine.Object 的对象引用(如 MonoBehaviour, ScriptableObject)
  • Array,与 List<T> 容器(包含数据类型必须可以被序列化才行,只支持一维,不支持嵌套容器,多维数组)