简介:
PlayerPrefs是Unity3d提供了一个用于数据本地持久化保存与读取的类。工作原理十分简单,就是以key-value的形式将数据保存在本地,然后在代码中可以写入、读取、更新数据。
可用于存储一些非关键性的数据,尤其在没有服务器的单机游戏中,游戏存档、分数排名等都需要用到数据存储,可以使用PlayerPrefs轻松实现数据存储。
优点是使用简单,查找方便
缺点是每个key只能存储单个数据,而且数据类型只有string,int,float三种
用法:
增
//存储整型数据
PlayerPrefs.SetInt("intKey",999);
//存储浮点型数据
PlayerPrefs.SetFloat("floatKey",1.11f);
//存储字符串数据
PlayerPrefs.SetString("strKey","I am Plane");
删
//删除所有存储数据
PlayerPrefs.DeleteAll();
//删除key为"score"的数据
PlayerPrefs.DeleteKey("score");
改
与增用法一样
查
//查找是否存在key为"score"的数据
bool exist = PlayerPrefs.HasKey("score")
存档位置
2.Android 端:
apk安装在内置flash存储器上时,
PlayerPrefs的位置是\data\data\com.company.product\shared_prefs\com.company.product.xml
apk安装在内置SD卡存储器上时,PlayerPrefs的位置是/sdcard/Android/data/com.company.product\shared_prefs\com.company.product.xml
shared_prefs是SharedPreferences的缩写,是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再 从SharedPreferences中将值取出。SharedPreferences 可以用来进行数据的共享,包括应用程序之间,或者同一个应用程序中的不同组件。比如两个activity除了通过Intent传递数据之外,也可以通过ShreadPreferences来共享数据.Unity中通过PlayerPref来存储游戏的一些数据,特别是单机游戏。在android平台就是存储到上述位置。 另外,是否安装到sd卡可在PlayerSetting->Other Settings->Install Location 设置。
3.Mac
在Mac OS X上PlayerPrefs存储在~/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在Project Setting中设置的,相同的plist用于在编辑器中运行的工程和独立模式.On iOS, the PlayerPrefs can be found in your app’s plist file. It’s located at:/Apps/ your app’s folder /Library/Preferences/ your app’s .plist
在Windows独立模式下,PlayerPrefs被存储在注册表的 HKCU\Software[company name][product name]键下,这里company和product名是在Project Setting中设置的.在Windows编辑器模式下,PlayerPrefs被存储在注册表的 HKCU\Software\Unity\UnityEditor\ [company name][product name]键下,这里company和product名是在Project Setting中设置的