数据持久化——PlayerPrefs

内存和硬盘

内存(RAM)是电脑的“临时工作台”

  • 用于临时存放 CPU 正在处理的数据和程序
  • CPU 可直接、快速访问内存中的数据,速度以纳秒(ns)计。
  • 断电后数据全部丢失(易失性存储)。

硬盘(HDD/SSD)是电脑的“永久储物柜”

  • 用于长期存储操作系统、应用程序、文件、图片、视频等
  • 即使关机或断电,数据依然保留(非易失性存储)。
  • 容量大(常见 512GB–2TB+),价格较低(尤其 HDD)。

PlayerPrefs是什么

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

PlayerPrefs存储相关

Setxx函数 临时存储到内存结束到硬盘

PlayerPrefs的数据存储——类似于键值对存储,一个键对应一个值

提供了存储3种数据的方法: int/float/string

键:string类型 值:int float string 对应三种API

PlayerPrefs.SetInt(“myAge”,18); PlayerPrefs.SetFloat(“myHeight”,177.5f); PlayerPrefs.SetString (“myName”,“唐老狮”)

1.直接调用Set相关方法,只会把数据存到内存中

2.当游戏结束时 Unity会自动把数据存到硬盘中

3.如果游戏不是正常结束,而是崩溃,数据不会存到硬盘中

Save函数 数据立马存储到硬盘

//只要调用该方法,就会马上存储到硬盘中 PlayerPrefs.Save()

PlayerPrefs的局限性

//因为PlayerPrefs能保存的数据只有三种类型,如果是存储其他类型数据只能降低精度 //比如这里就是——利用int类型做二元判断,然后判断结果作为bool类型的“是与否” bool sex =true; PlayerPrefs.SetInt(“sex”,sex?1:0);
//如果不同类型用同一键名进行存储,会进行覆盖 PlayerPrefs.SetInt(“MyAge”,18); PlayerPrefs.SetFloat(“MyAge”,20.2f); 如同此处——这里之前“MyAge”所对应的值是int类型的18,后面重新赋值float类型的20.2f

读取相关

注意:

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

Set 方法时,数据会先被写入到内存中的缓存,所有 Get 方法(如GetIntGetString)在读取时,会优先从这个内存缓存中查找数据

即使你没有调用PlayerPrefs.Save(),只要在当前运行期间已经通过 Set 设置过某个键,就可以立即通过 Get 读取到该值。

GetXX函数的默认值

读取时,数据中无值/值类型不对应

//这里之前如果"myAge"中无值(或者数据类型不对),就会输出为0 PlayerPrefs.SetInt(“MyAge”,18); PlayerPrefs.SetFloat(“MyAge”,20.2f);//如果不同类型用同一键名进行存储,会进行覆盖 int age = PlayerPrefs.GetInt("myAge"); print(age);//输出为0 //前提是 如果找不到myAge对应的值 就会返回函数的第二个参数 默认值 age = PlayerPrefs.GetInt("myAge", 100); print(age);//输出100

读取时,数据中有值

//因为前面“myHeight”设置了值 PlayerPrefs.SetFloat(“myHeight”,177.5f); float height = PlayerPrefs.GetFloat("myHeight", 1000f); print(height);//输出177.5f

判断数据是否存在

//PlayerPrefs.HasKey("myName") 判断的是当前运行时内存中是否存在键为 "myName" 的数据 if(PlayerPrefs.HasKey("myName")) { prinf(“存在myName对应的键值对数据”); }

删除数据

//删除指定键值对 PlayerPrefs.DeleteKey(“myAge”); //删除所有存储的信息 PlayerPrefs.DeleteAll();

PlayerPrefs存储位置

存储位置因运行平台不同而异,但 API 统一,开发者无需关心底层差异。

Windows系统

打开注册表编辑器:利用WIN+r,输入regedit

HKEY_CURRENT_USER\Software\Unity\UnityEditor $ CompanyName] $ ProductName]

注册表本身是一个持久化的数据库系统,其数据物理存储在硬盘上的用户配置文件中

硬盘中的相关PlayerPref文件

说修改这里的数据会直接改变游戏中的值,我这里并未发生,可能是执行顺序的问题?

Android系统

数据保存在应用私有目录的SharedPreferences中:

/data/data/[包名]/shared_prefs/[包名].xml

PlayerPrefs必须保证数据唯一性

PlayerPrefs中不同数据的唯一性——是由key决定的,不同的key决定了不同的数据。

同一项目中,如果不同数据的key相同,会造成数据丢失,要保证数据不丢失就要建立一个保证key唯一的规则(似乎是哈希表?)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1170239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

100个实用小工具8-deepCFD二维流场神经网络 - 详解

100个实用小工具8-deepCFD二维流场神经网络 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

2026国内最新针织高弹面料品牌top10推荐!广东广州等地优质面料供应商权威榜单发布,品质与创新双优助力服饰产业升级 - 品牌推荐2026

随着消费升级与服饰产业智能化转型,针织高弹面料作为服装功能性与舒适性的核心载体,市场需求呈现爆发式增长。据中国纺织工业联合会最新行业报告显示,2025年国内针织高弹面料市场规模突破800亿元,年增长率达15%,但…

RHCSE--ansible2--剧本

Ansible PlaybookAnsible Playbook(剧本)是 Ansible 核心配置文件,采用 YAML 格式编写,用于定义一系列有序的自动化任务集合,描述 “要在哪些远程主机上执行哪些操作”。YAML 基本规则YAML 是一种易读的序列化格式&…

亲测好用9个AI论文平台,专科生毕业论文必备!

亲测好用9个AI论文平台,专科生毕业论文必备! AI 工具如何助力论文写作,让学术之路更轻松 在当前的学术环境中,AI 工具正逐渐成为学生和科研工作者不可或缺的助手。特别是在论文写作过程中,AI 不仅能帮助降低 AIGC 率&a…

林雪平大学团队让电脑配对图片速度提升70%

当你拿起手机拍摄风景照片时,可能从未想过电脑是如何识别和匹配这些图像的。但对于自动驾驶汽车、3D地图制作和虚拟现实技术来说,让机器准确快速地"看懂"并匹配不同角度拍摄的照片是至关重要的技能。最近,来自瑞典林雪平大学、查尔…

蒙特利尔大学破解AI检索答题难题:让机器学会“挑三拣四“读文档

这项由蒙特利尔大学领导、联合克莱姆森大学、圣母大学、佐治亚理工学院和早稻田大学的国际研究团队开展的研究,发表于2026年4月在迪拜举办的WWW国际会议(第26届万维网大会)。有兴趣深入了解的读者可以通过论文编号arXiv:2601.09028v1查询完整…

STM32WB55串口蓝牙模块

1.STM32CubeMX生成代码 生成代码的过程我就不截图了,工程中直接附带STM32CubeMX的工程文件(.ioc),需要注意的是STM32CubeMX的版本为V6.11.1,Package为STM32Cube FW_WB V1.19.0。2.MDK代码简单解析 生成工程的主要添…

哈佛大学首创AI模型:让机器像人类一样记住看不见的物体运动

这项由哈佛大学Kempner研究所、加州大学圣地亚哥分校和卡内基梅隆大学共同完成的研究发表于2025年,有兴趣深入了解的读者可以通过论文编号arXiv:2601.01075v1查询完整论文。在我们的日常生活中,有一个看似简单却极其复杂的现象:当你转过身去&…

软工第一次作业-补写

软工第一次作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13469这…

NewMind AI团队用“晚互动“技术让小模型击败大模型

这项由土耳其伊斯坦布尔NewMind AI公司的Ozay Ezerceli等七位研究人员共同完成的研究发表于2025年11月,论文编号为arXiv:2511.16528v1。对于想要深入了解技术细节的读者,可以通过这个编号在学术数据库中查找完整论文。当我们在搜索引擎里输入中文查询时&…

欧拉路及欧拉回路

一、概念 二、判断方法 三、求法 四、题集及常见问题

day134—快慢指针—环形链表(LeetCode-141)

题目描述给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#…

基于深度学习的风力叶片缺陷检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 摘要 本项目基于YOLOv8目标检测算法开发了一套专门用于风力发电机叶片表面缺陷检测的智能化系统。系统能够自动识别并分类7种常见的风力叶片缺陷,包括燃烧痕迹(burning)、裂纹(crack)、变形(deformity)、污垢(dirt)、油渍(oil)、剥落(peeling)和锈蚀…

day135—快慢指针—环形链表Ⅱ(LeetCode-142)

题目描述给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部…

深度智慧团队突破:让AI看视频学推理,媲美人类解迷宫能力

这项由深度智慧公司、清华大学、上海人工智能实验室等多家机构联合开展的研究发表于2025年11月的arXiv预印本平台,编号为arXiv:2511.15065v1。研究团队包括杨程、万海源、彭艺然等多位学者,他们在视频推理领域实现了重要突破。有兴趣深入了解的读者可以通…

基于深度学习的跌倒检测系统(YOLOv8+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 摘要 本项目基于YOLOv8目标检测算法,开发了一套高效、实时的跌倒检测系统,能够准确识别人的三种行为状态:跌倒(fallen)、正在跌倒(falling)和站立(stand)…

基于深度学习的无人机红外检测系统(车辆行人)(YOLOv8+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 摘要 本项目基于YOLOv8深度学习目标检测算法,开发了一套适用于无人机红外影像的实时检测系统,能够精准识别车辆(Car)、其他车辆(OtherVehicle)、行人(Person)以及无效…

微软VC|DX运行库合集完整版

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

1.3.2 git使用ssh密钥 连接远程仓库

git使用https协议,每次pull, push都要输入密码,相当的烦。使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。大概需要三个步骤:一、本地生成密钥对;二、设置github上的公钥;三、修改git的remote url为gi…

P4620 [SDOI2018] 荣誉称号 - Link

看到有很多除以 \(2\),容易想到把原问题转化成二叉树上的问题。 考虑令 \(x\) 的父亲为 \(\lfloor\frac{x}{2}\rfloor\),问题就变成了对于每个点,它包括自己,向下延伸 \(k+1\) 个点(如果有的话)的点权和模 \(m\)…