官方文档:PlayerPrefs - Unity 脚本 API
视频教程:Basic Saving and Loading in Unity with PlayerPrefs
1.简介
PlayerPrefs是一个用于存储玩家偏好设定(Player preference)的类,它可以存储三种类型的数据:string、float和integer。
存储的数据保存在用户的本地注册表中,它所存储的数据能够在不同的游戏会话之间加载。
注意:
- 不要用于存储敏感信息。
- 频繁保存会影响性能。
2.应用场景
- 音乐音量、分辨率、全屏等设置
- 排行
- 制作游戏原型时,暂时储存数据
3.常用API
API | |
---|---|
DeleteAll | 从偏好设置中删除所有键和值。请谨慎使用。 |
DeleteKey | 从偏好设置中删除给定的键。如果键不存在,DeleteKey没有影响。 |
GetFloat | 返回偏好设置文件中与 key 对应的值(如果存在)。 |
GetInt | 返回偏好设置文件中与 key 对应的值(如果存在)。 |
GetString | 返回偏好设置文件中与 key 对应的值(如果存在)。 |
HasKey | 如果偏好中存在给定的键,返回ture,否则返回false。 |
Save | 保存所有修改项。 |
SetFloat | 为给定的键设置浮点类型值。 |
SetInt | 为给定的键设置整数类型值。 |
SetString | 为给定的键设置字符串类型值。 |
4.例子
例子1:存储文字
这里实现一个较为简单的例子:
- 文本框用于输入文字
- 点击按钮,进行存储、加载或是删除
using TMPro;
using UnityEngine;
public class MiniSaveManager : MonoBehaviour
{
[SerializeField] private TMP_InputField inputField;
// 保存数据
public void SaveData()
{
PlayerPrefs.SetString("input", inputField.text);
}
// 加载数据
public void LoadData()
{
inputField.text = PlayerPrefs.GetString("input");
}
// 删除数据
public void DeleteData()
{
PlayerPrefs.DeleteKey("input");
//PlayerPrefs.DeleteAll();
}
}