数据持久化之PlayerPrefs

数据持久化:

将数据保存到长期存储介质中,以便在程序结束后或计算机重启后仍然能够保留数据。

什么是PlayerPrefs

PlayerPrefs是unity提供的可以存储读取玩家数据的公共类。

 PlayerPrefs的存储

PlayerPrefs的存储是一种键值对的存储方式,当中的每一个键对应着一个数值(类似于字典),【string键,value 值】。同时PlayerPrefs的存储值(value)只能应用三种数据类型(int float string),而键的类型只能是string类型。

PlayerPrefs.SetInt

PlayerPrefs.SetInt(string key,int 值)

PlayerPrefs.SetFloat

PlayerPrefs.SetFloat(string key,float值)

PlayerPrefs.SetString

PlayerPrefs.SetString(string key,string值)

以上PlayerPrefs的Set方法的使用,都是只会将数据存储到内存当中,当游戏结束的时候数据将存储到硬盘当中。PlayerPrefs.Save();[对当前所有的信息进行保存存储到硬盘当中,防止当我们的游戏奔溃或者突然中断的时候导致信息没有及时的存储到硬盘当中]

 PlayerPrefs的读取

我们在将PlayerPrefs的三种类型存储之后,在读取的阶段我们只需要读取当中的键的值就可以获取到PlayerPrefs设置的value值。若是没有对应的设置的值,将会直接获取默认值。

PlayerPrefs.GetInt

PlayerPrefs.GetInt(string key)

PlayerPrefs.GetInt(string key,int defaultValue)

 

 PlayerPrefs.GetFloat

PlayerPrefs.GetFloat(string key)

PlayerPrefs.GetFloat(string key,float defaultValue)

PlayerPrefs.GetString

PlayerPrefs.GetString(string key)

PlayerPrefs.GetString(string key,string defaultValue)

Get上面的string key必须与创建对应的三种类型的string key的值一致,才能够调用设置的value值。同时注意当设置string键的时候,不能在不同的类型当中设置同一个string key,否则原来的value值将被替代成其他的类型。如果我们再用这设置的时候我们发现我们的key值不存在,那么将会自动的采用默认值(int 为0,float为0,string为空字符),亦或者我们可以在设置的时候直接使用两个参数,一个为string key键,一个是对应类型的value值。这样如果在PlayerPrefs当中如果查询没有set设置的string key 对应的value值,那么将会使用get设置的value值,又或者会自动采用原来的默认default值。 

 PlayerPrefs删除数据

 当需要删除已储存在PlayerPrefs当中的数据。

PlayerPrefs.DeleteKey

PlayerPrefs.DeleteKey(string key);

 删除其中相应的key对应的value值。

 

 注:清除了Age键对应的数据,所以当再一次显示Age对应的value值时,只会显示默认值

PlayerPrefs.DeleteAll

PlayerPrefs.DeleteAll();

删除PlayerPrefs当中所有的数据。

注:PlayerPrefs.DeleteAll();删除了PlayerPrefs当中的所有的数据,所以在面板当中height_01与ID_01显示的为默认值。PlayerPrefs.HasKey(string key)返回bool值。这是用于判断PlayerPrefs数据当中是否含有相关的Key键。若存在返回true,否则返回false。

PlayerPrefs的存储位置

PlayerPrefs的实例应用

 存储人物原先位置信息

当在进场景的反复跳转的时候,保存物体(人物)原先场景的位置,回到原来的场景当中后,物体(人物)依然处在跳转场景之前的位置上面。避免了在返回原来的场景时,物体(人物)回到场景的初始位置。

(在物体/人物上面的脚本)

(在跳转场景的脚本)

是否第一次进入场景

 

 当没有进入过游戏的时候,GetInt当中的key键对应的value则是默认值0。判断则为false,执行else。然后SetInt设置first game键对应的值为1,记录表示进入过游戏。当再次进入的时候,判断则为true。表示不是第一次进入游戏了。

PlayerPrefs的优缺点

优点:

简单,快捷,易懂

缺点:

重复的工作量较多

自定数据类,需要自己去实现存储和读取的功能

代码相似度高

安全性较低,用户可以自己修改数据,易出现外挂

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值