Unity 基础 之 PlayerPrefs数据存储

概念

PlayerPrefs 游戏存档俗称玩家偏好。 工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。类似于ios中的默认偏好设置(NSUserDefaults)用法类似

  • Windows

    在Windows平台下,PlayerPrefs被存储在注册表的 HKEY_CURRENT_USER\Softwarecompany name键下(打开“运行”输入regedit打开注册表),其中company name和product name名是在Project Setting中设置。

  • Linux

    在Linux,PlayerPrefs是储存在~/.config/unity3d/[CompanyName]/[ProductName]。其中CompanyName和ProductName名是在Project Setting中设置

  • WebPlayer 网页

    在网页平台,PlayerPrefs是储存在二进制文件,看下面的对应的各平台位置:

    Mac OS X: ~/Library/Preferences/Unity/WebPlayerPrefs

    Windows: %APPDATA%\Unity\WebPlayerPrefs

一个游戏存档文件对应一个web播放器URL并且文件大小被限制为1MB。如果超出这个限制,SetInt、SetFloat和SetString将不会存储值并抛出一个PlayerPrefsException异常。

存档类型可以有float,int,string 三种类型,每种类型分别对应着Set,Get两种方法,下面以float类型进行举例,int,string同理。

代码示例

SetInt(key:string, Value:int) 返回值 void
设置由key确定的偏好值。
参数:

  • 第一个参数表示存储数据的名称
  • 第二的参数表示具体存储的数值。
public class playerDemo: MonoBehaviour
{  
    public void Start()
    {  
        PlayerPrefs.SetInt("Score", 10);  
    }  
}  

GetInt(key:string,defaultValue:int=0) 返回值 int 。如果存在,返回偏好文件中key对应的值。

public class playerDemo: MonoBehaviour
{  
   public void Start()
   {  
      Debug.log(PlayerPrefs.GetInt("Score"));  
   }  
}

相关方法

PlayerPrefs 还有以下几个方法:

  • 是否包含输入键:

    public static bool HasKey(string key);

如果key在偏好中存在,返回true,否则返回false。

  • 删除指定键:

    public static void DeleteKey(string key);

从存储偏好中删除key和它对应的值。

  • 删除所有键:

    public static void DeleteAll();

从游戏存档中删除所有key。请谨慎使用。

  • 保存:

    public static void Save();

做了某些操作的之后进行保存操作

上一篇:云开发平台温暖宠粉, “AI“送你秋天的第一件卫衣


下一篇:OpenStack潜力巨大:红帽打造生态系统