unity中有一个简单的游戏存档类–playerprefs,这个类有什么作用呢?
PlayerPrefs是Unity3d提供了一个用于数据本地持久化保存与读取的类。工作原理十分简单,就是以key-value的形式将数据保存在本地,然后在代码中可以写入、读取、更新数据。它可以用来储存一些非关键性的数据,尤其是一些没有服务器的单机游戏中,游戏存档、分数排名等都需要用到数据存储,这个时候可以使用playerprefs轻松实现数据存储
需要知道的是,这个类存储的数据是以键值对的形式进行,可以简单的看成是一个字典,同时他也是通过键名来进行读取,当键不存在的时候,返回默认值
对应函数:
#region 程序集 UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// D:\unity2018.2.3\install\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
#endregion
using UnityEngine.Bindings;
namespace UnityEngine
{
//
// 摘要:
// Stores and accesses player preferences between game sessions.
[NativeHeader("Runtime/Utilities/PlayerPrefs.h")]
public class PlayerPrefs
{
public PlayerPrefs();
//
// 摘要:
// Removes all keys and values from the preferences. Use with caution.
[NativeMethod("DeleteAllWithCallback")]
public static void DeleteAll();
//
// 摘要:
// Removes key and its corresponding value from the preferences.
//
// 参数:
// key:
public static void DeleteKey(string key);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static float GetFloat(string key, float defaultValue);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static float GetFloat(string key);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static int GetInt(string key, int defaultValue);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static int GetInt(string key);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static string GetString(string key, string defaultValue);
//
// 摘要:
// Returns the value corresponding to key in the preference file if it exists.
//
// 参数:
// key:
//
// defaultValue:
public static string GetString(string key);
//
// 摘要:
// Returns true if key exists in the preferences.
//
// 参数:
// key:
public static bool HasKey(string key);
//
// 摘要:
// Writes all modified preferences to disk.
[NativeMethod("Sync")]
public static void Save();
//
// 摘要:
// Sets the value of the preference identified by key.
//
// 参数:
// key:
//
// value:
public static void SetFloat(string key, float value);
//
// 摘要:
// Sets the value of the preference identified by key.
//
// 参数:
// key:
//
// value:
public static void SetInt(string key, int value);
//
// 摘要:
// Sets the value of the preference identified by key.
//
// 参数:
// key:
//
// value:
public static void SetString(string key, string value);
}
}
函数作用就是英文释义。
最后一个事情,这个类保存的数据存在哪里,这里简单的说几个平台
1.MacOS平台下,储存在~/Library/Preferences文件夹,名为unity.[company name].[product name].plist。
2.在windows平台,存储在注册表的 HKEY_CURRENT_USER\Software[company name][product name]键下。