Unity PlayerPrefs 游戏存档

Posted 陈言必行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity PlayerPrefs 游戏存档相关的知识,希望对你有一定的参考价值。

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

Windows
在Windows平台下,PlayerPrefs被存储在注册表的 HKEY_CURRENT_USER\\Software[company name][product 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。

public static void DeleteKey(string key); 删除键
从偏好中删除key和它对应的值。

public static void DeleteAll(); 删除所有键
从游戏存档中删除所有key。请谨慎使用。

public static void Save(); 保存
写入所有修改参数到硬盘。 注意:在Windows Store和Windows Phone 8.1的游戏存档保存是在应用程序暂定时,因此没有应用程序退出事件。

以上是关于Unity PlayerPrefs 游戏存档的主要内容,如果未能解决你的问题,请参考以下文章

Unity3DUnity3D之 注册表动态存取游戏存档——PlayerPrefs类

Unity PlayerPrefs 的存档,到底在哪

Unity游戏开发学习之路——数据持久化

Unity存档系统丨PlayerPrefs简介,及构建一个基础的数据存储系统

Unity 常用的几种存档读档方式

unity的做个RPG游戏怎么实现存档功能,能说说大概的思路嘛?