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

Posted 其子昱舟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

以上是关于Unity 数据持久化之PlayerPrefs 如何存储数据的主要内容,如果未能解决你的问题,请参考以下文章

Unity 数据持久化之PlayerPrefs

Unity 数据持久化之PlayerPrefs

Unity 3D 之Playerprefs

Unity 数据持久化之PlayerPrefs 存储位置

Unity 数据持久化之PlayerPrefs 存储位置

Unity3DUnity3D之 注册表动态存取游戏存档——PlayerPrefs类