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配置数据,可读性良好,策划配表方便,适合大量的数据配置需求。

 

 

posted @   七修天  阅读(1170)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示