U_数据持久化技术

什么是数据持久化?我的理解是数据的存档与读取。

一、常见路径及文件夹

Application.dataPath 项目数据文件所在文件夹 一般是指 Assets

Application.streamingAssetsPath 流数据缓存目录,返回路径为相对路径,该路径下文件只读。

问:为什么打包后的该文件夹下的文件可以被修改?

【ChatGpt: 在Unity中,Application.streamingAssetsPath返回的路径是只读的,但是在打包后的应用程序中,用户仍然可以修改这些文件。这是因为在打包后的应用程序中,这些文件被复制到了应用程序的持久数据路径下,而持久数据路径下的文件是可以被用户修改的。

如果您希望确保配置文件不被用户修改,您可以将配置文件放在只读目录中,或者使用加密或其他安全措施来保护配置文件。另外,您也可以在应用程序启动时检查配置文件是否被篡改,并采取相应的措施来防止恶意修改。】

Application.persistentDataPath 此属性用于返回一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。该文件夹下的路径是可读可写的。

Application.temporaryCachePath 临时数据缓存目录

Resources

StreamingAssets

AssetBundle

PersistentDataPath

二、PlayerPrefs 持久化技术

PlayerPrefs是Unity自带的数据结构,位于UnityEngine命名空间下。它可以对整数,浮点数,字符串3种类型的数据进行存取。它是持久存储于设备上的。例如安卓,只要用户没有删除应用或者手动去清除应用数据,PlayerPrefs的数据就会一直保留。

PlayerPrefs采取键值的方式进行数据的查询与存储,基本的存储与输出方式如下:

存储数据方式:
PlayerPrefs.SetInt ("ID",1);
PlayerPrefs.SetFloat ("WEIGHT",20.5f);
PlayerPrefs.SetString ("NAME","SNAGE");

读取数据方式如下:
int id = PlayerPrefs.GetInt ("ID");
float weight = PlayerPrefs.GetFloat ("WEIGHT");
string name = PlayerPrefs.GetString ("NAME");

删除数据方式如下:
PlayerPrefs.DeleteKey ("NAME");
PlayerPrefs.DeleteAll ();

对于更多的关于PlayerPrefs的使用方式,直接查看PlayerPrefs的源码即可。

参考文章:
https://zhuanlan.zhihu.com/p/38090723

posted @ 2023-11-16 10:58  匿鱼  阅读(32)  评论(0)    收藏  举报