# 序列化最佳实践

> Best practices for serialization.

您可以组织数据来确保从 Unity 的序列化获得最佳使用效果。

* 目的是让 Unity 序列化尽可能小的数据集。这样做的目的不是为了节省计算机硬盘驱动器上的空间，而是为了确保您可以保持与项目以前版本的向后兼容性。如果使用大型的序列化数据集，那么在开发后期保持向后兼容性会变得更加困难。
* 绝不会让 Unity 序列化重复的数据或缓存的数据。这给向后兼容性带来了严重的问题：它存在很高的出错风险，因为数据可能会出现不同步的情况。
* 避免使用嵌套的递归结构引用其他类。序列化结构的布局总是必须相同；独立于数据，仅依赖于脚本中公开的内容。引用其他类的唯一方法是通过 `UnityEngine.Object` 派生的类。这些类是独立的；它们只互相引用，没有嵌入内容。

## 其他资源##thread-safety

* [序列化规则](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization/rules.md)
* [Unity 如何使用序列化](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization/how-unity-uses.md)
* [JSONSerialization](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization/json-serialization.md)
* [序列化错误](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-serialization/errors.md)
