unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
一、PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。
分别对应的函数为:
- SetInt();保存整型数据;
- GetInt();读取整形数据;
- SetFloat();保存浮点型数据;
- GetFlost();读取浮点型数据;
- SetString();保存字符串型数据;
- GetString();读取字符串型数据;
注:这些函数的用法基本一致使用Set进行保存,使用Get进行读取。
二、使用
PlayerPrefs.SetString("YourKey", "Your_Value"); 这个方法中第一个参数表示存储数据的名称,第二的参数表示具体存储的数值。
MyValue=PlayerPrefs.GetString("YourKey"); 这个方法中第一个数据表示读取数据的名称,本来还有第二的参数,表示默认值,如果通过数据名称没有找到对应的值,那么就返回默认值,这个值也可以写,则返回空值。
三、补充
在PlayerPrefs 类中还提供了
- PlayerPrefs.DeleteKey (key : string)删除指定数据;
- PlayerPrefs.DeleteAll() 删除全部键 ;
- PlayerPrefs.HasKey (key : string)判断数据是否存在的方法;
四、保存文件在不同平台上的的存储位置:
1.PC端
①打开注册表:regedit
②打开Unity中Edit----->Project Settings---->Player
③注册表中---->Software
④找到Unity
⑤找到写入的文件
2.Android 端:
apk安装在内置flash存储器上时,
PlayerPrefs的位置是datadatacom.company.productshared_prefscom.company.product.xml
apk安装在内置SD卡存储器上时,PlayerPrefs的位置是/sdcard/Android/data/com.company.productshared_prefscom.company.product.xml
在Windows独立模式下,PlayerPrefs被存储在注册表的 HKCUSoftware[company name][product name]键下,这里company和product名是在Project Setting中设置的.在Windows编辑器模式下,PlayerPrefs被存储在注册表的 HKCUSoftwareUnityUnityEditor [company name][product name]键下,这里company和product名是在Project Setting中设置的。