Unity3D学习之数据持久化——PlayerPrefs

文章目录

  • 1. 概念
  • 2. 存储
    • 2.1 存到内存当中
    • 2.2 存到硬盘当中
    • 2.3 局限性
    • 2.4 相同键会覆盖
  • 3.读取
    • 3.1 int型
    • 3.2 float型
    • 3.3 string型
    • 3.4 判断数据是否存在
  • 4. 删除数据
  • 5. 存储位置
  • 6. 反射
    • 6.1 判断一个类型的对象是否可以让另一个类型为自己分配空间
    • 6.2 通过反射获得泛型类型
  • 7 数据管理类
    • 7.1 存储
      • 7.1.1 获取传入数据的所有字段
      • 7.1.2 定义一个key的规则
      • 7.1.3 遍历字段获得key
      • 7.1.4 声明私有方法进行存储
    • 7.2 读取
  • 8 List数据类型存储
  • 9 Doctionary数据类型
  • 10 自定义类成员
  • 11 读取常用数据类型
    • 11.1 获得一个数据
    • 11.2 SaveData函数
    • 12 读取List数据类型
    • 13 读取Dictionary数据类型
  • 14.读取自定义类型
  • 15. 数据存储的位置
  • 16.数据加密思路
    • 16.1 找不到
    • 16.2 看不懂
    • 16.3 解不出
    • 16.4 PlayerPrefs尝试加密


1. 概念

在这里插入图片描述

就是保存存档和读取存档。
在这里插入图片描述

分为两部分,存储和读取,先看存储在看读取

2. 存储

PlayerPrefs 是unity提供可以存储和读取玩家数据的公共类

在这里插入图片描述

2.1 存到内存当中

在这里插入图片描述

2.2 存到硬盘当中

在这里插入图片描述

2.3 局限性

在这里插入图片描述

2.4 相同键会覆盖

在这里插入图片描述
上面定义过 PlayerPrefs.SetInt(“myAge”,18)
后面再定义PlayerPrefs.SetFloat(“myAge”,20.2f)
后面进行读取int型 myAge时,会变成默认值0

3.读取

在这里插入图片描述

3.1 int型

在这里插入图片描述
打印结果 0 和 100

3.2 float型

在这里插入图片描述

3.3 string型

在这里插入图片描述

3.4 判断数据是否存在

在这里插入图片描述

4. 删除数据

在这里插入图片描述

5. 存储位置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6. 反射

在这里插入图片描述

6.1 判断一个类型的对象是否可以让另一个类型为自己分配空间

1)父类装子类
2)是否可以从一个类型的对象为自己分配空间

创建两个有继承关系的类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.2 通过反射获得泛型类型

在这里插入图片描述在这里插入图片描述

7 数据管理类

在这里插入图片描述

单例模式适合管理类
创建管理类
在这里插入图片描述
测试类
在这里插入图片描述

7.1 存储

在这里插入图片描述

7.1.1 获取传入数据的所有字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.1.2 定义一个key的规则

在这里插入图片描述

7.1.3 遍历字段获得key

在这里插入图片描述

获得了对应的key在这里插入图片描述

7.1.4 声明私有方法进行存储

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2 读取

在这里插入图片描述
不需要在外部创建对象,然后传入函数
由函数直接返回对象,让外部少写一行代码

8 List数据类型存储

在这里插入图片描述

通过IList 父类进行类型判断,因为List需要泛型定义,不确定
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

9 Doctionary数据类型

在这里插入图片描述

和List一样,因为Dictionary的泛型不清楚,通过获得其父类获得object

在这里插入图片描述
通过增加"key" 和 "value"来分别存储一对键值对

10 自定义类成员

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

11 读取常用数据类型

在这里插入图片描述

11.1 获得一个数据

在这里插入图片描述
根据字段类型 来判断 根据哪个API判断

11.2 SaveData函数

函数说明在 7.2
在这里插入图片描述

12 读取List数据类型

在这里插入图片描述

13 读取Dictionary数据类型

在这里插入图片描述

14.读取自定义类型

在这里插入图片描述

修改游戏逻辑读取存档

在这里插入图片描述执行
在执行save方法的时候,进行存盘
在这里插入图片描述

15. 数据存储的位置

在这里插入图片描述

16.数据加密思路

在这里插入图片描述

16.1 找不到

在这里插入图片描述

16.2 看不懂

在这里插入图片描述

16.3 解不出

在这里插入图片描述

16.4 PlayerPrefs尝试加密

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为设备vlan下配置MSTP,STP选举

核心代码,不同实例,承载不同流量,为每个实例设置一个根网桥达到分流的效果 stp region-config //进入stp区域的设置 region-name R1 //区域命名为R1 instance 1 vlan 10 …

06-python数据容器-list列表定义/list的10个常用操作/列表的遍历/使用列表取出偶数

01-数据容器入门 为什么学习数据容器? 数据容器的5个分类 02-数据容器(list列表)列表的定义 列表的定义 列表的定义方式 嵌套列表的定义 my_list是一个列表,其中有两个元素,每一个元素又是一个列表,这就是…

VMware Vsphere 日志:用户 dcui@127.0.01已以vMware-client/6.5.0 的身份登录

一、事件截图: 二、解决办法 原因: 三、解决办法 1.开启锁定模式 2.操作 1、从清单中选择您的 ESXi 主机,然后转至管理 > 设置 > 安全配置文件,然后单击锁定模式的编辑按钮 2、在打开的锁定模式窗口中,选中启…

C++I/O流——(3)文件输入/输出(第一节)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 含泪播种的人一定能含笑收获&#xff…

代码随想录 Leetcode18. 四数之和

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月15日&#xff09;&#xff1a; class Solution { public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int>> result;sort(nums.begin(), nums.end(…

JVM实战(17)——模拟对象晋升

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

数据结构学习 leetcode31 下一个排列

关键词&#xff1a;下一个排列 字典序 排列 这是我在做jz38字符串的排序的时候&#xff0c;一种解题方法是字典序&#xff0c;用到的就是这种方法。这种方法支持不重复地输出全排列。 题目&#xff1a;下一个排列 思路&#xff1a; 我看了官方题解和这位大哥的题解&#xff…

dns 域名解析协议

1.1 dns 的概念 作为将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便地访问互联网,基于C/S架构&#xff0c; 服务器端&#xff1a;53/udp, 53/tcp实际上&#xff0c;每一台 DNS 服务器都只负责管理一个有限范围&#xff08;一个或几个域&#xff09;内的主…

Vscode 上安装 Compilot

GitHub Copilot 是由 OpenAI 和 GitHub 开发的 AI 工具。其目的是通过自动完成代码来帮助开发人员使用集成开发环境 &#xff08;IDE&#xff09;&#xff0c;如 Visual Studio Code。它目前仅作为技术预览版提供&#xff0c;因此只有已在候补名单上被接受的用户才能访问它。对…

【软件工程】《软件工程》期末复习提纲

《软件工程》期末复习提纲 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 小题参考 大题参考 《软件工程》期末复习提纲 第一章 1.在下列选项中&#xff0c;&#xff08; &#xff09;不是软…

C#,入门教程(66)——枚举Enum的高等用法

前言&#xff1a;国内码农与国外优秀程序员的最大区别是&#xff0c;我们的专家、教授喜欢唾沫横飞地&#xff0c;夸夸其谈语言特性、框架、性能&#xff0c;唯一目的是带私货&#xff08;书籍或教程&#xff09;&#xff0c;很少能写出真有用的程序。差距在哪呢&#xff1f;基…

01章【JAVA开发入门】

计算机基本概念 计算机组成原理 计算机组装 计算机&#xff1a;电子计算机&#xff0c;俗称电脑。是一种能够按照程序运行&#xff0c;自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成&#xff0c;没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、…

Apache POI 导出Excel报表

大家好我是苏麟 , 今天聊聊Apache POI . Apache POI 介绍 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下&#xff0c;POI 都是用于操作 E…

slint 1.3.2 官方文档翻译04

主要使用 有道翻译。希望能够对 初学者 有所帮助 翻译自&#xff1a;Builtin Enumerations - Slint 1.3.2 Reference Builtin Enumerations 内置的枚举 AccessibleRole 可访问角色 This enum represents the different values for the accessible-role property, used to d…

Vue3-TS中的接口-泛型-自定义类型

1首先一般在src下新建types文件夹&#xff0c;用来存放接口类型 2定义一个接口&#xff0c;用于限制person对象的具体属性 当需要用这个类型形成数组时&#xff0c;有2种写法 export type Persons Array<PersonInter> export type Persons PersonInter[] 3在文件中使…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念&#xff0c;只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群&#xff0c;属于多JVM的工作环境&#xff0c;JVM之间已经无法通过…

数据结构--排序

参考【算法】排序算法之希尔排序 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/122632213 1. 排序的定义 2. 插入排序 2.1 直接插入排序 在插入第i&#xff08;i>1)个记录时&#xff0c;前面的i-1个记录已经排好序 void insertSort(int r[],int n) {for(int i2;i<…

JMeter定时器之同步定时器

JMeter定时器之同步定时器 1. 背景2. 目的3. 介绍4. 例子4.1单个请求4.2多个请求 1. 背景 在实际生活中大家肯定遇到过一种场景&#xff0c;就是在某一时间或某一时刻&#xff0c;某件商品进行抢购&#xff0c;相当于秒杀&#xff1b;但是用JMeter进行测试的时候&#xff0c;如…

反向代理的本质是什么?

反向代理是一种网络架构模式&#xff0c;通常用于提供静态内容、处理安全、负载均衡和缓存等任务。在这种架构中&#xff0c;客户端发送的请求首先到达反向代理服务器&#xff0c;然后由反向代理服务器将请求转发给后端的实际服务器。反向代理服务器可以处理和修改请求和响应&a…

GPT应用开发:运行你的第一个聊天程序

本系列文章介绍基于OpenAI GPT API开发应用的方法&#xff0c;适合从零开始&#xff0c;也适合查缺补漏。 本文首先介绍基于聊天API编程的方法。 环境搭建 很多机器学习框架和类库都是使用Python编写的&#xff0c;OpenAI提供的很多例子也是Python编写的&#xff0c;所以为了…