当前位置: 首页 > news >正文

关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用

Unity的PlayerPrefs类是用于在游戏中保存和读取玩家偏好设置或其他简单数据的工具。它提供了一种简单的键值对存储方式,可以在游戏中持久化保存数据。

PlayerPrefs提供了三种类型的数据的处理:分别是int,float,string。

具体使用方法如下:

1、保存数据。

PlayerPrefs.SetInt(key, value)

SetFloat(key, value)

SetString(key, value)

以上方法分别可以保存整数、浮点数、字符串到指定的键值。

例:

PlayerPrefs.SetInt(“age”, 26);SetFloat("weight", 61.5f);SetString("name", "张三");

2、读取数据。

PlayerPrefs.GetInt(key, defaultValue)

GetFloat(key, defaultValue)

GetString(key, defaultValue)

以上方法分别可以从指定的键值种读取整数、浮点数和字符串。如果键不存在,可以提供一个默认值作为返回结构。

例:

PlayerPrefs.GetInt(“age”);GetFloat("weight");GetString("name");PlayerPrefs.GetInt(“age”,26);//此处提供了个默认值26,当key=age不存在返回该值。

3、删除数据。

PlayerPrefs.DeleteKey(key);使用该方法可以删除指定键的数据。

PlayerPrefs.DeleteAll();使用该方法可以删除所有保存的数据。

4、检查键是否存在。

PlayerPrefs.HasKey(key);通过该方法可以检查指定的键是否存在。

以上就是PlayerPrefs类的一些操作。

在实际应用中,我们是经常会用到,因为它具有不少好处:

首先,PlayerPrefs提供了一个简单的接口来保存和读取数据,不需要复杂的文件操作或数据库管理所以使用起来比较简单易用。

其次,它支持多平台,比如Windows、Mac、Linux、iOS和Android等都是支持的。

还有就是持久化保存,PlayerPrefs保存的数据在游戏关闭后仍然存在,可以在下次游戏启动时继续使用。

但是它也存在一些缺点:

首先,如果保存的数据量很大,使用PlayerPrefs,应用的性能可能会受到数据量的影响,读取和写入操作可能会变慢。

其次存在数据安全问题,PlayerPrefs保存的数据可以被玩家手动修改,因此不适合保存敏感信息或重要数据。如果需要保存敏感数据,还是得使用其他更安全的存储方式。

这里顺便整理了下不同平台PlayerPrefs数据的保存路径:

  1. Windows:
    PlayerPrefs数据保存在注册表中的路径:HKEY_CURRENT_USER\Software[company name][product name]

  2. macOS:
    PlayerPrefs数据保存在用户的偏好设置目录中,路径为:~/Library/Preferences/[company name].[product name].plist

  3. Linux:
    PlayerPrefs数据保存在用户的本地配置目录中,路径为:~/.config/[company name]/[product name].prefs

  4. iOS:
    PlayerPrefs数据保存在应用的沙盒目录中,路径为:Application.persistentDataPath + "/Library/Preferences/com.[company name].[product name].plist"

  5. Android:
    PlayerPrefs数据保存在应用的沙盒目录中,路径为:/data/data/[package name]/shared_prefs/com.[company name].[product name].xml

其中,[company name]和[product name]是你在Unity项目设置中指定的公司名和产品名。

最后,特别说明的一点就是PlayerPrefs保存数据的唯一性。它意思就是说每个键(key)在PlayerPrefs中是唯一的,不能使用相同的键保存不同的值,否则后面保存的值会覆盖之前保存的值。

相关文章:

关于Unity自带的保存简单且持久化数据PlayerPrefs类的使用

Unity的PlayerPrefs类是用于在游戏中保存和读取玩家偏好设置或其他简单数据的工具。它提供了一种简单的键值对存储方式,可以在游戏中持久化保存数据。 PlayerPrefs提供了三种类型的数据的处理:分别是int,float,string。 具体使用方法如下: …...

力扣贪心——跳跃游戏I和II

1 跳跃游戏 利用边界进行判断,核心就是判定边界,边界内所有步数一定是最小的,然后在这个边界里找能到达的最远地方。 1.1 跳跃游戏I class Solution {public boolean canJump(int[] nums) {int len nums.length;int maxDistance 0;int te…...

【SA8295P 源码分析 (三)】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算

【SA8295P 源码分析】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算 一、GPIO 透传带宽消耗计算二、SPI 通迅带宽消耗计算三、I2C 通迅带宽消耗计算四、UART 通迅带宽消耗计算系列文章汇总见:《【SA8295P 源码分析 (三)】Camera 模块 文章链接汇总 -…...

毕业论文GPT说:

作为一个计算机专业的大四学生,学过英语,微积分,离散数学,概率论与数理统计,线性代数,具体数学,数论,C语言,汇编语言,在网格机算、数据科学、机器学习与智能工…...

Week-T10 数据增强

文章目录 一、准备环境和数据1.环境2. 数据 二、数据增强(增加数据集中样本的多样性)三、将增强后的数据添加到模型中四、开始训练五、自定义增强函数六、一些增强函数 🍨 本文为🔗365天深度学习训练营 中的学习记录博客&#x1f…...

史上最全!PMP实用应试技巧汇总!

PMP(Project Management Professional 项目管理专业人士资格认证,由全球最大的项目管理专业组织机构——美国PMI发起,目的是用来严格评估管理项目人员知识技能是否具有高品质的资格认证考试。给大家带来关于PMP考试的实用应试技巧。 PMP解题…...

037、目标检测-SSD实现

之——实现 目录 之——简单实现 杂谈 正文 1.类别预测层 2.边界框预测 3.多尺度输出联结做预测(提高预测效率) 4.多尺度实现 5.基本网络块 6.完整模型 杂谈 原理查看:037、目标检测-算法速览-CSDN博客 正文 1.类别预测层 类别预测…...

【开题报告】基于SpringBoot的摄影作品展示网站的设计与实现

1.研究背景 随着社会的发展和人民生活水平的提高,摄影作品已成为一种非常受欢迎的艺术形式。越来越多的人开始对摄影艺术产生兴趣,并且拥有了自己的摄影作品。然而,如何将这些摄影作品展示出来并与其他摄影爱好者进行交流,成为了…...

SVR和SVM是什么关系

SVR(Support Vector Regression)和 SVM(Support Vector Machines)是支持向量机(Support Vector Machine)的两个不同方面,分别用于回归和分类问题。 SVM (Support Vector Machines): SVM是一种用…...

Flutter 3.16 中带来的更新

Flutter 3.16 中带来的更新 目 录 1. 概述2. 框架更新2.1 Material 3 成为新默认2.2 支持 Material 3 动画2.3 TextScaler2.4 SelectionArea 更新2.5 MatrixTransition 动画2.6 滚动更新2.7 在编辑菜单中添加附加选项2.8 PaintPattern 添加到 flutter_test 3. 引擎更新&#xf…...

批量插入数据与分页的原理及推导

批量插入数据 【1】准备数据 class Book(models.Model):title models.CharField(max_length32) 【2】一条一条插入 后端 def ab_many(request):# (1)先给Book表插入一万条数据for i in range(1000):models.Book.objects.create(titlef第{i}本书)# (2)将所有数据查询到并展…...

SMART PLC累计流量功能块(梯形积分法+浮点数累加精度控制)

S7-200SMART PLC数值积分器相关知识请参考下面文章链接: SMART PLC数值积分器功能块(矩形+梯形积分法完整源代码)-CSDN博客文章浏览阅读153次。PLC的数值积分器算法也可以参考下面文章链接:PLC算法系列之数值积分器(Integrator)-CSDN博客数值积分和微分在工程上的重要意义不…...

【金融分析】Python:病人预约安排政策 | 金融模拟分析

目录: 说明(Instructions) 问题描述(Problem Description) 仿真设置(Simulation Setting) 仿真过程的 Python 代码...

后端接口测试,令牌校验住,获取tocken 接口的方式

post : http://127.0.0.1:端口号/login { "username":"admin", "password":"admin123", "code":"3", "uuid":"966c34e409434f15942ec29a284da0a6" } headers tocken false...

Ghidra逆向工具配置 MacOS 的启动台显示(Python)

写在前面 通过 ghidra 工具, 但是只能用命令行启动, 不太舒服, 写个脚本生成 MacOS 的 app 格式并导入启动台. 不算复杂, 主要是解析包的一些元信息还有裁剪软件图标(通过 MacOS 自带的 API) 脚本 #!/opt/homebrew/bin/python3import os import re import subprocess as sp…...

关于交换芯片调试 tx_delay rx_delay 的一点经验

按照官方的介绍,需要用示波器 测量数据和时钟 实质相位差在2ns 左右,但是由于时钟 125M ,数据方波需要的示波器带宽更高,所以普通示波器是没有办法的,测试变形很大,所以调试的方法如下: 1.根据官方手册,先在设备树里设置跟手册示例一样的,保证ping的时候可以ping通,…...

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解前言MobleNet_V2讲解反向残差结构(Inverted Residuals)兴趣流形(Manifold of interest)线性瓶颈层…...

Spring Cloud 简介

1、简介 Spring CloudLevel up your Java code and explore what Spring can do for you.https://spring.io/projects/spring-cloud Spring Cloud 是一系列有序框架的集合,其主要的设施有,服务发现与注册,配置中心,消息总…...

Redis从入门到精通(二)- 入门篇

文章目录 0. 前言1. 入门篇[【入门篇】1.1 redis 基础数据类型详解和示例](https://icepip.blog.csdn.net/article/details/134438573)[【入门篇】1.2 Redis 客户端之 Jedis 详解和示例](https://icepip.blog.csdn.net/article/details/134440061)[【入门篇】1.3 redis客户端之…...

SpringDoc基础配置和集成OAuth2登录认证教程

本期内容 学会通过注解和Java代码的方式添加SpringDoc配置。在swagger-ui提供的页面上提供OAuth2登录认证,在集成Security的情况下便捷获取access_token并在请求时按照OAuth2规范携带。 为什么集成OAuth2登录认证? 现在大部分教程是在swagger-ui页面添…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...