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

在这里插入图片描述

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

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

相关文章

斯坦福 Stats60:21 世纪的统计学:第十五章到第十八章

第十五章:比较均值 原文:statsthinking21.github.io/statsthinking21-core-site/comparing-means.html 译者:飞龙 协议:CC BY-NC-SA 4.0 我们已经遇到了许多情况,我们想要询问样本均值的问题。在本章中,我们…

Keepalived 双机热备

本章主要内容: Keepalived 双机热备基础知识学会构建双机热备系统学会构建LVSHA 高可用群集 简介 在这个高度信息化的IT时代,企业的生产系统,业务运营,销售和支持,以及日常管理等环节越来越依赖于计算机和服务&#…

Shape-IoU——综合考量边框形状与尺度的度量

今天看到一篇文章主要是提出了一种更有效的IOU度量方法,论文地址在这里,如下所示: 摘要 边界盒回归损失作为检测器定位分支的重要组成部分,在目标检测任务中起着重要作用。现有的边界框回归方法通常考虑GT框和预测框之间的几何关…

使用ffmpeg进行视频截取

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-sta…

SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用

四、Database MetaData 与 SQL Express Language 的使用 MetaData对象用于描述表结构,SQL Express Language是DBAPI SQL的统一封装器。MetaData 与SQL Express 语句可以在Core层使用,ORM层基于MetaData, SQL Express基础上做了进一步抽象。本章将介绍在…

Python简单ORM实现:不使用元类的灵活数据操作与查询构建【第29篇—python:ORM】

文章目录 不使用元类的简单ORM实现Field类Compare类Model类Query类示例使用扩展查询功能支持 LIMIT 和 OFFSET支持 GROUP BY 和 HAVING 示例用法总结 不使用元类的简单ORM实现 在 Python 中,ORM(Object-Relational Mapping)是一种将对象和数…

基于uniapp的在线课程教学系统

介绍 项目背景: 随着互联网的快速发展,在线教育已经成为一种流行的学习方式。针对这一趋势,我们决定开发一个基于UniApp的在线课程教学系统。该系统旨在为学生提供方便快捷的在线学习体验,同时也为教师提供一个高效管理课程的平台…

《计算机视觉处理设计开发工程师》

计算机视觉(Computer Vision)是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说,计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标,计算机视觉结合了图像处理、机器学习、模…

做品牌,怎么挖掘用户深层需求?

品牌想要长久发展,就需要去挖掘用户深层需求,什么是用户深层需求,比如做美业的认为用户想要变美是深层次的需求,但其实由美貌带来的附加利益比如说更上镜、竞争优势更大等才属于深层需求,今天媒介盒子就来和大家聊聊&a…

compose 实验

cd /opt mkdir compose_nginx cd compose_nginx mkdir nginx cd nginx/ 此时顺便将nginx安装包拖进来 vim Dockerfile mkdir /opt/compose_nginx/wwwroot echo "<h1>this is test web</h1>" > /opt/compose_nginx/wwwroot/index.html docker netw…

【C语言知识】原码反码和补码

一&#xff0c;简介 总结进制转换&#xff0c;原码&#xff0c;反码和补码相关基础知识。 二&#xff0c;具体说明 2.1 十进制转二进制方法 14(D)转换为二进制为&#xff08;0000 1110 &#xff09; -21(D)转换为二进制为&#xff08;1001 0101&#xff09;&#xff0c;先…

二分查找与搜索树的高频问题(算法村第九关白银挑战)

基于二分查找的拓展问题 山峰数组的封顶索引 852. 山脉数组的峰顶索引 - 力扣&#xff08;LeetCode&#xff09; 给你由整数组成的山脉数组 arr &#xff0c;返回满足 arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i 1] > ... > arr[arr.length - 1…

git 提炼笔记

1、设置用户名和邮箱&#xff08;邮箱可以不是真的&#xff09; git config --global user.name test101 // 设置用户名为 test101git config --global user.email test101test101.cn // 设置邮箱为test101test101.cn2、查看用户名和邮箱 git config --global user.name git…

索引的数据结构(MySql高级)

索引的数据结构 为什么使用索引什么是索引索引的优缺点优点缺点 常见索引概念聚簇索引二级索引(辅助索引, 非聚簇索引)InnoDB的B树索引的注意事项 MyISAM 与 InnoDB 对比索引的代价 为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教…

基于SSM的网上购物商城设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Vue知识总结-下

VUE-组件间通信 组件的自定义事件 概述&#xff1a;是一种组件间通信的方式,适用于&#xff1a;子组件>父组件使用场景&#xff1a;A是父组件,B是子组件,B给A传递数据,那么需要在A组件中绑定自定义事件(事件的回调也在A中)使用步骤 绑定自定义事件&#xff1a; 第一种方式…

Python展示 RGB立方体的二维切面视图

代码实现 import numpy as np import matplotlib.pyplot as plt# 生成 24-bit 全彩 RGB 立方体 def generate_rgb_cube():# 初始化一个 256x256x256 的三维数组rgb_cube np.zeros((256, 256, 256, 3), dtypenp.uint8)# 填充立方体for r in range(256):for g in range(256):fo…

压缩编码之不同缩放参数对重建图像质量的影响的python实现——JPEG变换编码不同压缩率的模拟

原理 JPEG&#xff08;Joint Photographic Experts Group&#xff09;是一种常用的图像压缩标准&#xff0c;它通过采用离散余弦变换&#xff08;DCT&#xff09;和量化来实现图像的压缩。 离散余弦变换&#xff08;DCT&#xff09;&#xff1a; JPEG首先将图像分割成8x8的块…

LeetCode 160: 两个链表的相交节点 - 优雅解法

LeetCode 160: Intersection of Two Linked Lists 题目描述 给定两个单链表 headA 和 headB 的头节点&#xff0c;返回它们相交的节点。如果两个链表没有相交&#xff0c;返回 null。 示例: 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,6,1,8,4,5], sk…

【安全策略】前端 JS 安全对抗浏览器调试方法

一、概念解析 1.1 什么是接口加密 如今这个时代&#xff0c;数据已经变得越来越重要&#xff0c;网页和APP是主流的数据载体。而如果获取数据的接口没有设置任何的保护措施&#xff0c;那么数据的安全性将面临极大的威胁。不仅可能造成数据的轻易窃取和篡改&#xff0c;还可能…