前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity 数据读取|(六)PlayerPrefs解析

Unity 数据读取|(六)PlayerPrefs解析

作者头像
游戏开发小Y
发布2024-01-18 19:15:55
2710
发布2024-01-18 19:15:55
举报
文章被收录于专栏:Unity开发系列专栏

1. 前言

PlayerPrefs是Unity内置的一个静态类,可以用于存储一些简单的数据类型:int ,string ,float。可以用它来做成计分板这类需要可持续化存储的小地方。

2. 存储位置

  • Mac OS X:存储在~/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在project Setting中设置的
  • windows:playerPrefs被存储在注册的HKCU\Software[company name][product name]键下,这里company和product名是在project setting中设置的。
  • Android:数据存储(持久化)在设备上。数据保存在SharedPreferences中。/data/data/包名/shared_prefs/pkg-name.xml
  • IOS:/Library/Preferences/[应用ID].plist

3. 优缺点

  • 优点:
    • 简单易用:PlayerPrefs提供了易于使用的API,使得存储和读取数据变得简单。
    • 持久化存储:PlayerPrefs可以持久化存储玩家的数据,即使应用程序关闭后也可以在下次启动时恢复数据。
    • 跨平台支持:PlayerPrefs在不同平台上的存储位置不同,但都提供了统一的API,使得跨平台开发变得更加容易。
  • 缺点:
    • 数据类型限制:PlayerPrefs只能存储字符串、整数、浮点数和布尔值等基本数据类型,对于复杂的数据结构需要自行处理。
    • 不适合大量数据的存储:PlayerPrefs不适合存储大量数据,因为所有的数据都会被存储在同一个文件中,可能会导致读写速度变慢。
    • 不安全:PlayerPrefs存储的数据可以被其他玩家或者恶意软件修改,因此不适合存储敏感信息。
    • 重复工作量多
    • 程序崩溃,数据无法保存
    • Key值同名,数据会被覆盖

3. 使用方法

  • SetInt(string key, int value):保存整型数据;
  • GetInt(string key, int defaultValue):读取整形数据;
  • SetFloat(string key, float value):保存浮点型数据;
  • GetFlost(string key, float defaultValue):读取浮点型数据;
  • SetString(string key, string value):保存字符串型数据;
  • GetString(string key, string defaultValue):读取字符串型数据;
  • PlayerPrefs.DeleteKey (key : string):删除指定数据;
  • PlayerPrefs.DeleteAll() :删除全部键 ;
  • PlayerPrefs.HasKey (key : string):判断数据是否存在的方法;
  • PlayerPrefs.Save():保存,避免崩溃数据未保存;
代码语言:javascript
复制
//存储整型数据
PlayerPrefs.SetInt("score",99); 
//存储浮点型数据
PlayerPrefs.SetFloat("level",1.11f); 
//存储字符串数据
PlayerPrefs.SetString("name","张三");

//取出key为"score"的整型数据
int intVal = PlayerPrefs.GetInt("score"); 
//取出key为"level"的浮点型数据
float floatVal = PlayerPrefs.GetFloat("level"); 
//获取key为"name"的字符串数据
string strVal = PlayerPrefs.GetString("name");

//删除所有存储数据
PlayerPrefs.DeleteAll();
//删除key为"score"的数据
PlayerPrefs.DeleteKey("score");
//查找是否存在key为"score"的数据
bool exist = PlayerPrefs.HasKey("score")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 存储位置
  • 3. 优缺点
  • 3. 使用方法
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档