Unity游戏数据存储
游戏数据类型
游戏数据浅分为三种:固定数据、用户数据、临时数据。
- 固定数据:由大量配置文件读取的固定游戏逻辑数据。
- 用户数据:用户行为产生的游戏数据,一般需要永久保存。
- 临时数据:保存游戏状态,用以游戏状态(关卡、场景等)的恢复。
基础库类
用以简单的存取Json文件数据(上一篇已经讲如何将配置的excel文件转成Json文件)
public class BaseRepository<T>
{
//加载库数据,例如英雄数据、武器数据、道具数据等
public List<T> GetGameData(string fileName)
{
var dataAsJson = LoadDataAsJson(fileName);
if (!string.IsNullOrEmpty(dataAsJson))
{
GameData<T> loadedData = JsonUtility.FromJson<GameData<T>>(dataAsJson);
return loadedData.gameData.ToList();
}
else
{
Debug.LogError($"Cannot load {fileName} data!");
}
return new List<T>();
}
//加载用户数据、临时数据等
public T GetPersistentData(string fileName)
{
try
{
var dataAsJson = File.ReadAllText(Application.persistentDataPath + fileName);
if (!string.IsNullOrEmpty(dataAsJson))
{
T loadedData = JsonUtility.FromJson<T>(dataAsJson);
return loadedData;
}
else
{
Debug.LogError($"Cannot load {Application.persistentDataPath + fileName} data!");
}
}
catch (Except