news 2026/1/16 21:34:40

Unity学习笔记(二十)PlayerPrefs(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity学习笔记(二十)PlayerPrefs(一)

目录

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唯一的规则

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/12 11:28:39

牛批插件,让你的电脑瞬间丝滑!

啰嗦几句 浏览器插件可以实现资源嗅控、多线程下载、屏蔽广告、解除禁止复制等等功能,可以说插件是浏览器的灵魂! 而我们比较经常用到的插件有油猴、1DM、标签页等等。今天给大家推荐一款挺牛的拖拽预览的插件,非常方便,有需要的…

作者头像 李华
网站建设 2026/1/14 9:13:12

Docker入门

Docker是一款快速构建、运行、管理应用的工具自动搜索并下载应用镜像。镜像不仅包含应用本身,还包含应用运行所需要的环境,配置,系统函数库、Docker会在运行镜像时创建一个隔离环境,称为容器。镜像仓库:Docker Hub入门…

作者头像 李华
网站建设 2026/1/15 4:33:43

22、正则表达式:从基础到高级应用

正则表达式:从基础到高级应用 1. 正则表达式基础 正则表达式除了字面字符外,还包含元字符,用于指定更复杂的匹配规则。常见的元字符有: ^ $ . [ ] { } - ? * + ( ) | \ ,其他字符则被视为字面字符。不过,反斜杠字符在某些情况下用于创建元序列,也可让元字符被当作字…

作者头像 李华
网站建设 2026/1/16 13:00:34

取能模块:无源自取电创新解决方案

提及无源自取电,很多人会第一时间联想到智能手机的无线充电功能,原则上理解的没错,只是相较于无源自取电这种技术,二者本质上应用的领域有所区别。前者目前适用于中高压和低压输电线路上,以非接触式取能的核心优势&…

作者头像 李华
网站建设 2026/1/10 16:45:55

30、编写Shell脚本入门与项目实践

编写Shell脚本入门与项目实践 1. 编写第一个脚本 首先,我们来编写一个简单的“Hello World”脚本。在命令行中输入以下代码: [me@linuxbox ~]$ echo Hello World! # This is a comment too Hello World!这里的注释在命令行中作用不大,但在脚本里是很有用的。脚本的第一行…

作者头像 李华
网站建设 2026/1/16 6:58:56

启动进程,并返回新进程id(C++源码)

1、概述 启动进程,并返回新进程id,支持场景: 1、支持绝对路径: C:\Program Files\Google\Chrome\Application\chrome.exe 2、支持环境变量路径:%localappdata%\\Feishu\\Feishu.exe 1.1、调用示例 // 调用示例// 启动进程,并返回新进程id// 支持绝对路径: C:\Program Fil…

作者头像 李华