来源:https://www.bilibili.com/video/BV1nQ4y1z7pZ?spm_id_from=333.337.search-card.all.click
PlayerPrefs
官方手册: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
- 数据存储函数
public static void SetString(string key, string value);
public static void SetInt(string key, int value);
public static void SetFloat(string key, float value);
- 数据读取函数
public static string GetString(string key);
public static int GetInt(string key);
public static float GetFloat(string key);
可以加第二个参数,string defaultValue,load一个默认值
函数说明:
- key:键
- value:值
- 一个键对应一个值,读取数据时只要获取键就可以
键只有string类型,存储的数据类型有string、int和float型
缺点:存储复杂数据比较困难
优点:但是unity 内建的api,直接调用即可
补充资料:
- 序列化:将数据变为实体,可以在面板中被调整
- 示例:自定义类的序列化
- 存储位置:
详见官方手册说法。
根据官网手册在Macos上找这个文件发现并不能找到,但是load数据是可以load出来的,不清楚这个数据具体存在什么地方,暂时没查到
PlayerPrefs的拓展
- PlayerPrefs只支持 string/int/float三种数据类型的存取
- 如何存储其他类型的数据以及更复杂的数据呢?
- JsonUtility:可以将任何Unity序列化程序支持的类->JasonUtility.ToJson()->转化成Json对象(Json就是按一定格式书写的string,这样就可以用PlayerPrefs.SetString()来存储json字符串)
PlayerPrefs的适用范围
- 适合用来存储暂时性的数据
- 玩家设定偏好
- 简单的数据
- 游戏原型制作时暂时的存储方案
- 适合用来存储暂时性的数据