1.5 Unity中的数据存储 PlayerPrefs

Unity中的三种数据存储:数据存储也称为数据持久化

一、PlayerPrefs

PlayerPrefs是Unity引擎自身提供的一个用于本地持久化保存与读取的类,以键值对的形式将数据保存在文件中,然后程序可以根据关键字提取数值。

PlayerPrefs类支持3种数据类型的保存和读取:浮点型、整形、字符串型

1.保存数据

        //保存整型数据
        PlayerPrefs.SetInt("int1",123);
        //保存浮点型数据
        PlayerPrefs.SetFloat("float1",123.4f);
        //保存字符串型数据
        PlayerPrefs.SetString("string1","名字");

2.读取数据

        //读取整数型数据
        PlayerPrefs.GetInt("int1");
        //读取浮点型数据
        PlayerPrefs.GetFloat("float1");
        //读取字符串型数据
        PlayerPrefs.GetString("string1");

3.获取数据

通过Key值获取在本地持久化的数据,如果Key值不存在,那么就会返回一个默认值

        //读取整数型数据,如果key值不存在 那么就会返回一个默认值0
        PlayerPrefs.GetInt("int1",123);
        //读取浮点型数据,如果key值不存在 那么就会返回一个默认值0.0
        PlayerPrefs.GetFloat("float1",123.4f);
        //读取字符串型数据,如果key值不存在 那么就会返回一个默认值""
        PlayerPrefs.GetString("string1","名字");

4.查找是否存在该键值

PlayerPrefs.HasKey("int");

5.清除所有记录

 PlayerPrefs.DeleteAll();

6.删除其中某一条记录

PlayerPrefs.DeleteKey("int");

7.将记录写入磁盘

PlayerPrefs.Save()

8.示例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerPabsTest : MonoBehaviour
{
 
    // Use this for initialization
    void Start () {
        //写入姓名数据
        PlayerPrefs.SetString("姓名","张三");
        //查找是否存在键值为'姓名'的数据
        if (PlayerPrefs.HasKey("姓名"))
        {
            //读取键值为 '姓名' 的数据 并打印
            Debug.Log(PlayerPrefs.GetString("姓名"));
        }
    }
}

打印结果:

张三

9.不同平台的PlayerPrefs存储路径

  •  Mac OS X:~/Library/Preferences
  •  Windows:HKCU\Software[company name][product name]
  •  Linux:~/.config/unity3d/ [CompanyName]/ [ProductName]
  •  Windows Store Apps: %userprofile% AppData Local\Packages\[ProductPackageld]>/LocalSt ate/playerprefs.dat
  •  WebPlayer
    • Mac OS X: ~/Library/ Preferences/Unity/ WebPlayer Prefs
    • Windows: %APPDATA% Unity\WebPlayer Prefs

10.优缺点

  • 优点:可以快速便捷的处理一些数据,比XMLQ、JSON等其他方法要快的多,对于开发者来说,读写也非常简单
  • 缺点:只能对整数型、浮点型和字符串型三种类型数据进行处理,如果遇上非常庞大的一个数据量就会非常麻烦不利于管理

在开发平时的一些小项目对数据存储功能没有强的需求时,使用效果很好!
注意:PlayerPrfs不同数据,不能同名,即便是不同的数据类型


 

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

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

相关文章

php中常用的几个安全函数

1. mysql_real_escape_string() 这个函数对于在PHP中防止SQL注入攻击很有帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询以前已经是安全的了。但你要注意你是在连接着数据库的情况下使用这个…

UG装配-动态干涉检查

如果设计的产品有运动部件,除了做静态干涉检查外,通常还要做动态干涉检查 动态检查可以使用如下命令:移动组件,序列 在动态干涉检查前,先装配好组件,并且是可运动状态 在使用移动组件命令对运动部件进行…

DePIN:重塑物理资源网络的未来

点击查看TechubNews更多相关推荐 一、DePIN:物理资源的新整合方式 Depin赛道的项目如雨后春笋般涌现,为市场注入了新的活力。作为先行者,Coinmanlabs已经深入布局Depin赛道,其中最引人注目的项目当属Grass。 什么是DePIN DePIN…

Flashduty 案例分享 - 途游游戏

Flashduty 作为功能完备的事件OnCall中心,可以接入云上、云下不同监控系统,统一做告警降噪分派、认领升级、排班协同,已经得到众多先进企业的认可。我们采访了一些典型客户代表,了解他们的痛点、选型考虑和未来展望,集…

第一个动态结构:链表

王有志,一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群:共同富裕的Java人 今天我们一起学习线性表中的第二种数据结构:链表,也是真正意义上的第一个动态数据结构。今天的内容分为3个部分:认识链表&#xff0…

IIS+SDK+VS2010+SP1+SQL server2012全套工具包及安装教程

前言 今天花了两个半小时安装这一整套配置,这个文章的目标是将安装时间缩短到1个小时 正文 安装步骤如下: VS2010 —> service pack 1 —>SQL server2012 —> IIS —> SDK 工具包链接如下: https://pan.baidu.com/s/1WQD-KfiUW…

微软开源时空预测Fost的使用和解读

一、引言 时空预测是指对未知系统状态在时间和空间上的预测,它是地球系统科学、交通运输、智慧城市等领域的重要技术和工具。时空预测的目的是利用历史数据和当前信息,通过建立时空依赖关系,来推断未来的变化趋势和可能的情景。时空预测的应…

Hive数据库:嵌入、本地、远程全攻略(上)

Hive分布式数据仓库工具 关系型数据库 建立在关系模型之上的数据库称为关系型数据库(关系模型是由埃德加科德于1970年提出的),关系型数据库借助集合代数等数学概念处理数据库中的数据。数据查询语言SOL是基于关系型数据库的语言,能够对关系型数据库中的数据进行检…

单摆波运动

1、简介 单摆波运动通常由15个单摆小球完成,每个小球的线长不一致,线长从一端至另一端依次增长。线长不一致会导致运动周期不一致,故而单摆波运动中的每个小球运动都不同,且能在规则与不规则运动间转换。单摆波运动如下所示&…

Qt QComboBox组合框控件

文章目录 1 属性和方法1.1 文本1.2 图标1.3 插入和删除1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的组合框是集按钮和下拉列表体的控件,,它占用的屏幕空间很小,对应的类是QComboBox 1 属性和方法 QComboBox有很多属性,完整的…

力扣hot100 路径总和Ⅲ dfs 前缀和 一题双解 超全注释

Problem: 437. 路径总和 III 思路 树的遍历 DFS 一个朴素的做法是搜索以每个节点为根的(往下的)所有路径,并对路径总和为 targetSumtargetSumtargetSum 的路径进行累加统计。 使用 dfs1 来搜索所有节点,复杂度为 O(n)O(n)O(n)&am…

【计算机网络】TCP原理 | 可靠性机制分析(三)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程、计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 目…

数据结构第十二弹---堆的应用

堆的应用 1、堆排序2、TopK问题3、堆的相关习题总结 1、堆排序 要学习堆排序,首先要学习堆的向下调整算法,因为要用堆排序,你首先得建堆,而建堆需要执行多次堆的向下调整算法。 但是,使用向下调整算法需要满足一个前提…

全网最细RocketMQ源码一:NameSrv

一、入口 NameServer的启动源码在NameStartup,现在开始debug之旅 二、createNamesrcController public static NamesrvController createNamesrvController(String[] args) throws IOException, JoranException {System.setProperty(RemotingCommand.REMOTING_VER…

Java中多线程二

抢占调度模型 概述:优先让优先级高的线程使用 CPU ,如果线程的优先级相同,那么随机会选择一个,优先级高的线程获取的 CPU 时间片相对多一些 Thread 类中一些关于线程的方法 方法简述public final int getPriority()返回此线程的优…

五、Java中SpringBoot组件集成接入【slf4j日志文档】

五、Java中SpringBoot组件集成接入【slf4j日志文档】 1.slf4j简介2.maven依赖3.配置4.使用5.展示6.参考文章 1.slf4j简介 SLF4J(Simple Logging Facade for Java)是一个为Java应用程序提供统一日志接口的日志门面框架。它旨在解决Java应用程序中日志系统…

居中面试问题

前端常问居中面试问题 css文本居中 文本水平居中 <div class"father"><div class"child"><div> <div>子类元素为行内元素&#xff0c;则给父类元素定义text-align:center 如果子元素是块元素&#xff0c;则给子元素定义margin&…

Vue3快速入门

文章目录 1. Vue3简介1.1. 【性能的提升】1.2. 源码的升级】1.3. 【拥抱TypeScript】1.4. 【新的特性】 2. 创建Vue3工程2.1. 【基于 vue-cli 创建】2.2. 【基于 vite 创建】(推荐)2.3. 【一个简单的效果】 3. Vue3核心语法3.1. 【OptionsAPI 与 CompositionAPI】Options API 的…

Linux系统——测试端口连通性方法

目录 一、TCP端口连通性测试 1、ssh 2、telnet&#xff08;可能需要安装&#xff09; 3、curl 4、tcping&#xff08;需要安装&#xff09; 5、nc&#xff08;需要安装&#xff09; 6、nmap&#xff08;需要安装&#xff09; 二、UDP端口连通性测试 1、nc&#xff08;…

85.乐理基础-记号篇-速度记号

内容来源于&#xff1a;三分钟音乐社 上一个内容&#xff1a;85.乐理基础-记号篇-力度记号-CSDN博客 速度记号在下方两个里面已经写过一部分了&#xff0c;这些标记总体上是属于 不变速度 的标记&#xff0c;比如一首乐谱就记了 每分钟60拍&#xff0c;那整首速度就都是不变的…