一般数据保存我们都会用Unity自带的PlayerPrefs这个类,在数据较少时使用起来非常方便,通过特定的键值来存储相对应的数据,但是它的弊端也是显而易见的当我们要存储一个类,或者较多数据时再用它来存储就很不方便了。所以这篇文章给大家介绍一下通过序列化来保存一个类的数据
下面是一个玩家类,它包括 金币数量,道具数量,关卡,分数等数据,这些数据我们都需要持久化
[System.Serializable]
public class PlayerData
{
/// <summary>
/// 金币
/// </summary>
private int coin;
/// <summary>
/// 道具数量
/// </summary>
public int propCount;
/// <summary>
/// 关卡数量
/// </summary>
public int levelCount;
/// <summary>
/// 分数
/// </summary>
public int score;
public PlayerData()
{
coin = 100;
propCount = 3;
levelCount = 0;
score = 0;
}
}
接下来创建管理类 PlayDataFactoty 来存储和读取本地文件,保存文件的路径根据不同的平台而不同
在Editor模式下我们将文件存在StreamingAssets目录下,这个文件夹下的资源也会全都打包在