数据持久化的几种方式

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

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

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的位置

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

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/8609.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部