IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 数据持久化—PlayerPrefs -> 正文阅读

[游戏开发]数据持久化—PlayerPrefs

数据持久化

:将游戏数据存储到硬盘,硬盘中数据读取到游戏中,也就是传统意义上的存盘
游戏中的变量数据是存储在内存中的,如果游戏结束运行,这些数据就会丢失,数据持久化,就是把游戏运行过程中存在内存中的数据存储在硬盘中,保证不会丢失
在这里插入图片描述

PlayerPrefs的基本方法

  • 知识点一:PlayerPrefs是什么?

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

  • 知识点二:存储相关

PlayerPrefs的数据存储,类似于键值对存储 一个键对应一个值
提供了存储3种数据的方法 int float string
键:string类型
值:int float string 对应3种API

PlayerPrefs.SetInt("myAge",18);
PlayerPrefs.SetFloat("myHeight",177.5f);
PlayerPrefs.SetString(“myName”“姜小丫”)

直接调用set方法。只会把数据存到内存里
当游戏结束时,unity会自动把数据存到硬盘中(如果游戏不是正常结束而是崩溃的,数据是不会存到硬盘中的,只要调用该方法,就会马上存储到硬盘中 )PlayerPrefs.Save();

局限性:只能存3种类型的数据,如果要存储别的类型的数据,只能降低或上升精度来进行存储
如果不同类型用同一键名进行存储,会进行覆盖
PlayerPrefs.SetFloat(“myAge”,20.2f);

  • 知识点三:读取相关
    注意:运行时 只要你Set了对应键值对,即使没有马上存储Save在本地 也能读取出信息
//int 
int age =PlayerPrefs.GetInt("myAge");//如果获取的值没有,则返回默认值0
age =PlayerPrefs.GetInt("myAge"100)//如果获取的值没有myAge,则返回设定的默认值100
//float
float f=PlayerPrefs.GetFloat("myHeight");
//string
string s=PlayerPrefs.GetString("myName");

判断数据是否存在 主要为了避免相同的key值会覆盖
if (PlayerPrefs.HasKey(“myName”))
{
print(“存在”);
}
**

- 知识点四:删除数据

**

//删除指定键值对
PlayerPrefs.Deletkey("myAge");
//删除所有存储的信息
PlayerPrefs.DeletAll();

PlayerPrefs在不同平台的存储位置

**

  • 知识点一:PlayerPrefs存储的数据存储在哪里

**
Windows
PlayerPrefs存储在 HKCU\Software[公司名称][产品名称] 项下的注册表中
其中公司名称和产品名称是在 project Setting中设置的名称
查看:
//W+R 运行 regedit
//KKEY_CURRENT_USER
//SPFTWARE
//Unity
//UnityEditor
//公司名称
//产品名称
(可直接修改数据)
Android
/data/data/包名/shared_prefs/pkg-name.xml

IOS
/Library/Preferences/[应用ID].plist
**

  • 知识点二:PlayerPrefs数据唯一性

**
PlayerPrefs不同数据的唯一性是由key决定的,不同的key决定了不同的数据
同一项目中,如果不同数据的key相同,就会造成数据丢失
要保证数据不丢失就要建立一个保证key唯一的规则
**

  • 总结

**
缺点;
重复工作量繁多
自定义数据类,都需要自己去实现存储读取的功能
而且代码的相似度极高

数据容易被修改
只要找到文件位置,就可以轻易的进行数据修改

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:50:06  更:2021-10-11 17:51:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:40:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码