Unity学习笔记(二十)PlayerPrefs(一)
2026/4/22 7:05:01 网站建设 项目流程

目录

PlayerPrefs是什么

存储原理

读取相关

删除数据

PlayerPrefs数据唯一性


PlayerPrefs是什么

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

存储原理

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

调用set方法存只是到了内存中

PlayerPrefs.SetInt("myAge",18); PlayerPrefs.SetFloat("myHeight",177.5f); PlayerPrefs.SetString("myName", "shan");

当游戏结束时,Unity会自动把数据存到硬盘中
如果游戏不是正常结束的 而是崩溃 数据是不会存到硬盘中的
只要调用该方法 ,就马上会存到硬盘中

PlayerPrefs.Save();

PlayerPrefs是有局限性的,它只能存3种类型的数据

如果你想要存储别的类型的数据,只能降低精度或者上升精度来进行存储

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

如果不同的数据类型用同一键名进行存储,就会进行覆盖。

PlayerPrefs.SetFloat("myAge",20.0f);

读取相关

注意 运行时,只要你Set了对应键值对
即使你没有马上存储Save在本地
也能够读取出信息

读取了上面float的值,不会报错 但会读取为0 ,因为不存在int类型的(被覆盖了)

int age = PlayerPrefs.GetInt("myAge");

如果找不到myAge对应的值,就会返回函数的第二个参数,默认值

age = PlayerPrefs.GetInt("myAge",100);

判断数据是否存在

if (PlayerPrefs.HasKey("myName")) { print("存在"); }

删除数据

删除指定键值对

PlayerPrefs.DeleteKey("myAge");

删除所有存储的信息

PlayerPrefs.DeleteAll();

PlayerPrefs存储

PlayerPrefs 存储的数据位置
HKCU\Software\[公司名称]\[产品名称] 项下的注册表中
其中公司和产品名称是 在“Project Settings”中设置的名称。

运行 regedit
HKEY_CURRENT_USER
SOFTWARE6
Unity
UnityEditor
公司名称
产品名称

Android

data/data/包名/shared_prefs/pkg-name.xml

IOS

/Library/Preferences/[应用ID].plist

PlayerPrefs数据唯一性

PlayerPrefs中不同数据的唯一性
是由key决定的,不同的key决定了不同的数据
同一项目中 如果不同数据key相同 会造成数据丢失
要保证数据不丢失就要建立一个保证key唯一的规则

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询