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

news2024/11/17 0:04:40

文章目录

  • 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尝试加密

在这里插入图片描述

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

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

相关文章

Java类与对象详解(从语法到内部存储)

Java类与对象详解(从语法到内部存储) 一、什么是类?1、定义2、语法 二、类的实例化1、什么是实例化2、语法3、成员变量和成员方法的访问 三、构造方法1、什么是构造方法2、构造方法的重载3、构造方法的调用 四、this关键字五、类对象的内部存…

【STM32】STM32学习笔记-软件I2C读写MPU6050(33)

00. 目录 文章目录 00. 目录01. I2C简介02. MPU6050参数03. 软件I2C接线图04. I2C模拟应答时序示例05. I2C读取MPU6050程序示例06. 程序下载07. 附录 01. I2C简介 I2C(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式…

DeepSecrets:一款能够理解代码语义的代码敏感信息扫描工具

关于DeepSecrets DeepSecrets是一款能够理解代码语义的代码敏感信息扫描工具,在该工具的帮助下,广大研究人员将能够更有效地扫描和分析代码中的敏感信息。 社区中很多现有的代码分析工具其实并不能够真正地“理解”代码,而是直接解析代码文…

(亲测可行)关于提高IDEA运行速度的方案

1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版IDEA,计算机内存为12GB 2.修改配置以提高IDEA运行速度的误区-调高堆内存 很多文章会教调配置的内存,但大多是让你调高堆内存,比如会让你调高-Xms -Xmx ,这两种对应的是最…

Linux:理解磁盘与文件系统

文章目录 前面基础的总结文件系统文件的管理目的问题文件的管理内容问题 磁盘磁盘的结构和基本原理磁盘的分区磁盘的索引原理磁盘的逻辑抽象写入 本篇主要对于磁盘进行深入的理解,从而对于文件系统有一个基本的认识 前面基础的总结 在开始对文件系统做理解前&…

【PostgreSQL】安装和常用命令教程

PostgreSQL window安装教程 window安装PostgreSQL 建表语句: DROP TABLE IF EXISTS student; CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NULL,sex varchar(5) NOT NULL,PRIMARY KEY (id) );INSERT INTO student (id, name, sex) VALUES (…

Ubuntu 22.04安装使用easyconnect

EasyConnect 百度百科,EasyConnect能够帮助您在办公室之外使用公司内网的所有系统及应用。在您的公司部署深信服远程应用发布解决方案后,您的公司所有业务系统及应用都可以轻松迁移至移动互联网上。您可以通过手机、PAD等智能移动终端随时随地开展您的业…

程序员接私活还不知道这几个平台?那你真的亏了!

程序员接私活现在已经是一个老生常谈的话题了,现在市面上各种程序员接单平台层出不穷,也参差不齐,有比较老牌的知名平台,也有比较好的新兴平台,如此多的平台就容易让人眼花缭乱,不知道该如何选择。 这期文…

CSS3背景样式详解(图像大小,图像位置等)

背景样式 在CSS3中,新增了3个背景属性 属性说明background-size背景大小background-origin背景位置background-clip背景剪切 background-size属性 概念:在CSS3之前,我们是不能用CSS来控制背景图片大小的,背景图片的大小都是由…

【HarmonyOS】消息通知场景的实现

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

(N-139)基于springboot,vue宠物领养系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vue3element-plus 服务端技术:springbootmybatis-plusr…

C练习——杨辉三角

题目: 打印近似杨辉三角,行数n自选 百度找的杨辉三角,参考一下: 解析: 把它的全部元素左对齐,就可以看成近似杨辉三角的样子 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 …… 每个数等于它上方两数…

C++基础1

一、形参带默认值的函数 二、inline内联函数 内联函数是一种在编译器处理时,将函数的实际代码插入到调用处的方法。通常,函数调用涉及一定的开销,包括保存和恢复调用现场、跳转到函数的代码位置等。而内联函数通过在调用处直接插入函数的代码…

十五.流程控制与游标

流程控制与游标 1.流程控制1.1分支结构之IF1.2分支结构值CASE1.3循环结构之LOOP1.4循环结构之WHILE1.5循环结构之REPEAT1.6跳转语句之LEAVE语句1.7跳转语句之ITERATE语句 2.游标2.1什么是游标2.2使用游标步骤4.3举例4.5小结 1.流程控制 解决复杂问题不可能通过一个 SQL 语句完…

智慧校园大数据平台架构

平台架构 基础硬件层 基础硬件层是由一组低廉的PC或服务器组合构建而成。基础硬件层主要承载着数据的存储、运算、容错、调度和通信等任务,对基础应用层下达的指令进行执行和反馈。 数据集成 大数据特征表现在实时、交互、海量等方面,并且以半结构化、非结构化数据为主,价…

SpringBoot中 如何优雅的 重试调用 第三方API?

引言 在实际的应用中,我们经常需要调用第三方API来获取数据或执行某些操作。然而,由于网络不稳定、第三方服务异常等原因,API调用可能会失败。为了提高系统的稳定性和可靠性,我们通常会考虑实现重试机制。 本文将深入探讨如何在…

基于JAVA的固始鹅块销售系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

vue前端开发自学,祖孙多层级组件嵌套关系数据传输

vue前端开发自学,祖孙多层级组件嵌套关系数据传输!官方提供了一个解决方案,就是,在根组件内使用provide,哪个子孙组件想调用这个数据,就可以inject接收就行了。虽然是方便了,但是这个有点要求,就是只能自上…

重新认识Word——页眉页脚

重新认识Word——页眉页脚 节设置页脚第X页,共Y页 奇偶页不同页眉包含章节号清除页眉横线 我们之前已经全面的构建了我们的文章,现在我们来了解一下,我们毕业论文的页眉(页面信息)页脚(页码)的设…

JVM运行时数据区(下篇)

紧接上篇:JVM运行时数据区(上篇)-CSDN博客 堆 一般Java程序中堆内存是空间最大的一块内存区域。创建出来的对象都存在于堆上。 栈上的局部变量表中,可以存放堆上对象的引用。静态变量也可以存放堆对象的引用,通过静态…