Unity3D提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
PlayerPrefs类支持3种数据类型的保存和读取,浮点型,整型,和字符串型。
右图中我么可以看到PlayerPrebs类是一个密封类。我们不能对此类继承。
具体的函数讲解如下
通过Key值取获取在本地持久化的浮点型数据
public static float GetFloat(string key);
通过Key值取获取在本地持久化的浮点型数据,如果key值不存在 那么就会返回一个默认值 默认值为0.0
public static float GetFloat(string key, float defaultValue = 0.0F);
通过Key值取获取在本地持久化的整型数据
public static int GetFloat(string key);
通过Key值取获取在本地持久化的整型数据,如果key值不存在 那么就会返回一个默认值 默认值为0
public static int GetFloat(string key, float defaultValue = 0);
通过Key值取获取在本地持久化的字符串数据
public static string GetString(string key);
通过Key值取获取在本地持久化的字符串数据,如果key值不存在 那么就会返回一个默认值 默认值为“”
public static string GetString(string key, string defaultValue = “”);
通过key值和value值本地持久化数据
public static void SetFloat(string key, float value);
public static void SetInt(string key, int value);
public static void SetString(string key, string value);
删除所有的key值和value值 使用的时候一定要三思
public static void DeleteAll();
根据key值删除数据
public static void DeleteKey(string key);
查找本地是否存在key值
public static bool HasKey(string key);
参考代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerPabsTest : MonoBehaviour
{
// Use this for initialization
void Start () {
PlayerPrefs.SetString("姓名","张三");
if (PlayerPrefs.HasKey("张三"))
{
Debug.Log(PlayerPrefs.GetString("姓名"));
}
}
// Update is called once per frame
void Update () {
}
}