Unity 数据持久化之PlayerPrefs(二) 如何存储数据

一、PlayerPrefs 是什么

Unity提供的可以用于存储读取玩家数据的公共类

二、存储相关知识

PlayerPrefs的数据存储 类似于键值对存储 一个键对应一个值
1、提供了三种存储的数据方法 int float string
键:string 类型
值:int float string 对应的3种API

三、使用

// int 存储
PlayerPrefs.SetInt("myAge",18);
// int 取
PlayerPrefs.GetInt("myAge");  // PlayerPrefs.GetInt("myAge",100); 如果设置了默认值,又发现没有myAge的数据,就会返回设置的默认值100

// float 存储
PlayerPrefs.SetFloat("myHeight",177.5f);
// Float 取 可以设默认值返回值
PlayerPrefs.GetFloat("myHeight");

// string 存储
PlayerPrefs.SetString("myName","欢迎关注彭老师");
// string 取 可以设默认值返回值
PlayerPrefs.GetString("myName");


// 判断数据是否存在
if(PlayerPrefs.HasKey("Key")){
    
    
	// HasKey的主要作用是判断是否有同一个Key但是有多个值
}

注意:
1、直接调用Set相关方法,只会把数据存到内存里
2、当游戏结束后,Unity会自动把数据存到硬盘中
3、如果游戏不是正常结束,而是崩溃,数据不会存到硬盘中
4 、只要调用PlayerPrefs.Save(),就会立马存储到硬盘中,解决3的问题
5、如果同一个键名相同,就会覆盖

局限性:
1、只能存储3种类型的数据
2、如果非要存储别的类型的数据,只能降低精度,或者上升精度进行存储

取巧:

bool sex = ture;
PlayerPrefs.SetInt("sex",sex ? 1 : 0);

四、删除

// 删除某个Key
PlayerPrefs.DeleteKey("Key");
// 删除所有
PlayerPrefs.DeleteAll();

猜你喜欢

转载自blog.csdn.net/weixin_44720673/article/details/124747958
今日推荐