Как правильно сохранять данные в игре unity
У меня есть класс в котором сделана сериализация и десириализация через json. Как мне сохранить все нужные данные в один файл? Нужно создать класс где они все будут хранится? Но как их инициализировать, а после передавать в нужные классы при загрузке? Не совсем понимаю. Буду рад любой помощи!
Ответы (1 шт):
Если ты сериализуешь класс с помощью JsonUtility, то это варка каши из топора, потому что сериализовать нужно только данные, иначе непонятно как построить архитектуру загруски. Познакомся с паттерном Memento.
Что касается в один файл... думаю из самого вопроса ясно, что должен быть обработчик данных, который при добавлении сущности, проверяет если что для него загрузить по его ключу, а по команде сохранения создает список [ключ, json].
[Serializable]
public struct MementoData
{
public string key;
public string json;
}
// Можно сериализовать/десиарилизовать с помощью JsonUtility все данные
[Serializable]
public struct MementoDataCollection
{
public MementoData[] data;
}
Все сущности само собой под интерфесом:
public interface MementoTarget
{
public string Key { get; }
public string void GetSaveData ();
public void LoadData (string json);
}