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的源码即可。

浙公网安备 33010602011771号