序列化与存档
存档系统不要直接序列化GameObject——创建SaveData类(纯数据),游戏对象从SaveData重建状态。记得给存档加版本号。
游戏存档的基本原则:不要把 GameObject、MonoBehaviour、场景对象直接序列化。创建纯数据类(SaveData / PlayerData),只包含需要保存的数据(位置、血量、道具ID、任务进度),游戏对象在加载时从 SaveData 重建状态。
存档格式选择:简单数据用 JSON(可读、可调试、手动修改方便),大量数据用 Binary(体积小、读写快),加密存档用 Binary + AES(防止玩家修改)。Unity 的 PlayerPrefs 只适合保存设置(分辨率、音量),不适合游戏存档。
存档版本号是救命恩人:在存档开头放一个 version 字段。每次更新游戏修改了存档结构时,递增版本号。加载旧存档时根据版本做数据迁移(Migration)——加新字段给默认值,去掉的字段忽略。玩家的 100 小时存档不会因为一次更新就废了。
💡 微信搜索「别装没看见」小程序,44+ 开发技巧随时翻阅