Unity持久化数据,存档的几种方式
面对存档,我又开始复习,有了新的发现。
一、PlayerPrefs
Unity自带,API简单,封装了繁琐的序列化反序列化过程,但他只支持几种基本数据类型,string、int、float
二.、Json(Newtonsoft)
Json的话就可以存储复杂一点的对象,从而实现游戏的存读档。这里用到的是Newtonsoft的API,需要下载ddl,将下载的包放入Assets任意子目录下,通过引入命名空间using Newtonsoft.Json;即可使用
三、JsonUtility
JsonUtility是基于Rapid Json的,速度是快,但是几乎没有动态性,只能序列化格式确定的类,也不能自定义某个类型的序列化方式
四、ListJson
下载LitJson.dll,放进你的工程
总结:相对于Unity 自带的JsonUtility类而言,LitJson更胜一筹,它可以对一些略显复杂的类进行操作,而JsonUtility大多数情况下仅用来对一些简单的类进行操作
五. XML
XML一样可以存储复杂数据对象,相较于Json优点是可读性良好,但效率较低,适合大量的数据配置
六、easy save
非常简单的调用方式,封装了很多复杂操作。
unity 常用的几种解析json方式
1.比较流行的listjson(数据对象必须和json一对一)
2.目前unity自带 JsonUtility(不能解析复杂的json)
3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活)
总结:
比较简单的数据存储需求(如UI界面的配置)使用Unity自带的PlayerPrefs,简单快捷。
需要存储复杂的数据对象,使用Json和XML,而Json较为轻量级,读取速度较快,适合做游戏的存档读档功能,也可以做数据配置。XML较为重量级,优点是通过Excel配置数据,可读性良好,策划配表方便,适合大量的数据配置需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?