Создание модели через рефлексию для сохранений Unity C#

69
24 февраля 2022, 04:30

Я новичок и пишу систему сохранений в Unity, которую хотелось бы использовать и в других своих проектах. В Интернете полно способов сделать сохранения в Unity, но архитектурно-правильных — единицы, если они вообще есть. Надеюсь, таким же как я, этот вопрос и ответ на него будут очень полезены.

Ранее я делал одну модель и писал туда всё, что нужно было сохранять и загружать. Недостатки такого решения очевидны и показывают себя уже через 50 строк в такой модели. Что уж, пока я этот подход и не сменил. gameData — экземпляр в базовом классе от GameData, в котором множество разных полей.

protected override void Save()
{
    gameData.currencyAmount = Amount;
}
protected override void Load()
{
    Amount = gameData.currencyAmount;
}

Сейчас я в поиске другой системы. Мне ничего не мешало бы создавать отдельную модель для сохранений, но это может явно увеличить количество файлов в проекте и нажатий по клавиатуре. Так что этот вариант оставлю на крайний случай.

Мне бы хотелось как-то динамически создавать модель. Так что пришла идея добавить генерацию модели model через рефлексию. Я пока не сильно в этом разбираюсь, так что обратился сюда.

protected override void Save()
{
    model.Amount = Amount;
}
protected override void Load()
{
    Amount = model.Amount;
}

Извиняюсь, если что-то сформулировал или употребил неправильно. Если у вас есть другое, но не менее эффективное и простое, решение для сохранений в Unity, можете ответить им сразу. Буду рад всем мыслям и идеям в комментариях. Спасибо.

READ ALSO
Как правильно построить две колонки на Css grid

Как правильно построить две колонки на Css grid

Не получается построить две колонки

185
PhpMyAdmin и HTML

PhpMyAdmin и HTML

Пишу сайтСоздал несколько таблиц в phpmyadmin

89
Вопрос позиционирования flex

Вопрос позиционирования flex

Подскажите пожалуйста, как сделать чтобы списки встали друг под другом? Те

141
Разбить svg на части

Разбить svg на части

Есть в меня в html 50+ тысяч строк кода с примерно такого вида

88