PlayerFrefs持久化学习笔记
一.概述
PlayerPrefs是Unity提供的可以用于存储读取玩家数据的公共类。进入这个类中,可以看到如下图内容:
类中提供了一个无参构造函数,此外提供的所有public方法都是静态方法(从这点看无参构造使用时好像根本用不上,没有公共的成员方法或成员属性)。大致看一下这些静态方法的参数,可以发现有很多都是string类型的key和string、int或者float类型的value,事实上PlayerPrefs的存储结构类似于键值对,键都是string类型的,值有int、float和string三种类型(只能存储三种类型的值,有一定局限性)。接下来总结常用的方法。
二.PlayerPrefs的常用方法
1.存储相关
根据不同的值类型提供了不同的静态存储方法,将对应的键和值存储到内存里(临时数据),在游戏结束时,Unity会自动把内存中的数据存储到硬盘中(持久化数据),但是这样也导致游戏崩溃时,数据会丢失。
可以使用Save方法手动将内存中的数据存储到硬盘中,解决游戏崩溃等突发情况导致数据丢失的问题。
PS:在Windows中可以在注册表中查看或者修改存储的数据。
2.读取相关
每种数据Unity都提供了两种读取方法的重载,一种是根据键得到值,如果没有相应的键会获得对应值类型的默认值,另一种方法可以指定如果没有找到这个键获得的默认值(可以用于基础数据的初始化)。注意:读取的方法是从内存中读取,不是从硬盘中读取,也就是说只要set的值都能读取到,不是需要save后才能读取到。
3.判断是否存在某数据
4.删除数据
删除可以清空所有数据和指定删除某个键的数据。