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

2024-01-18 19:15:55 浏览数 (1)

1. 前言

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

2. 存储位置

  • Mac OS X:存储在~/Library/PlayerPrefs文件夹,名为unity.[company name].[product name].plist,这里company和product名是在project Setting中设置的
  • windows:playerPrefs被存储在注册的HKCUSoftware[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")

0 人点赞