首先设定一个Data类,里面临时存储玩家设置数据
/// <summary>
/// 数据类,用来数据传递
/// </summary>
public class Data
{
public int playerData;
}
接着创建一个单例模式的数据管理类,声明一个数据类的引用,构造方法加载数据,然后给外部提供一个只要改变设置就存储的方法
public class DataManager
{
private static DataManager instance = new DataManager();
public static DataManager Instance { get => instance; }
//传递数值的中介.
public Data data;
//游戏开始,被调用时初始化保存的游戏数据
private DataManager()
{
data = new Data();
data.playerData = PlayerPrefs.GetInt("PlayerData");
}
//提供方法给外部,只要玩家设置有变化,就存储
public void SaveData(int value)
{
PlayerPrefs.SetInt("PlayerData", value);
}
}
然后就能实现玩家进入游戏就会读取上一次游戏的设置,只要改变设置,就立刻存储的功能辣!!
public class SettingPanel : MonoBehaviour
{
//玩家数据.
private int playerData = 0;
void Start()
{
//显示数据.
playerData = DataManager.Instance.data.playerData;
}
void Update()
{
//如果玩家改变设置
if(playerData != 0)
{
//保存设置
DataManager.Instance.SaveData(playerData);
}
}
}