数据持久化的几种方式

数据持久化的方式有很多,最近只学了几种,在此一一列出来,记录下自己的成长,以下几种方式都是在编辑器模式下直接运行的,不需要游戏运行。

1.首先是Json格式的写入和读取

需要存储的数据类一定要加上[Serializable]序列化标签,Data类里面有名字和一个SubData的集合,SubData类里面则包括常用的几个数据类型的字段,最上面的LoadJson是一个可以在编辑器菜单栏直接执行的扩展方法。

打印的log如下图,第一行就是存储在json里的内容,后面几行就是读取json后输出的内容

2.通过Json使PlayerPrefs存储复杂结构

由于我写的是在编辑器模式下测试的代码,所以用的是EditorPrefs,如果在游戏运行中的话就是用的PlayerPrefs。

https://blog.csdn.net/qq_42010059/article/details/84934009 我写的另一篇文章里有写相同点和区别以及EditorPrefs的一个坑。

读取的方式和Json差不多,为了能存储成功数据,所以用了try...catch...来判断是否出错,这种方式解决了unity自带的PlayerPrefs只能存储简单数据的不足。

下图是打印的log

3.在dataPath下读写文本

这种方式是通过创建text文本,来写入和读取文本里的内容,先定义文本路径,再判断是否存在该文本。

https://www.cnblogs.com/mrxy/p/8057657.html 解释了string和stringBuilder的区别。

接着就是写入文本和读取文本了,下图是log和文件位置,也就表明Application.dataPath是Assets文件夹下的路径。

4.在persistentDataPath下读写文本并打开persistentDataPath目录

由于unity打包发布后是没有Assets/目录的,因此在真实环境下数据是保存在Application.persistentDataPath下的,但在unity编辑时如果也将数据存储在这个目录下,要查看的话就会比较麻烦,因此在编辑时一般都会将数据存储在Application.dataPath下,其他步骤和dataPath的读写方式一样。但如果还是想要查看Application.persistentDataPath的路径的话,就用EditorUtility.RevealInFinder(Application.persistentDataPath)来打开Application.persistentDataPath目录。

下方是log和test.txt的位置

 

以上就是我所学到的几种数据持久化的方式,如有错误,望能不吝赐教。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值