@Sithara

Как в юнити сделать сохранение большого числа переменных?

Допустим, я сделал 2д программу для работы с личными карточками сотрудников, тут есть всевозможные таблицы и готовые анкеты, суммарно 677 поля, которые можно заполнить на одного человека. Мне нужно, чтобы это всё сохранялось, а потом при новом запуске подгружалось. В интернете нашлись только способы сохранения каждой переменной в отдельности, на примерах игр с сохранением позиций персонажа, уровня жизни, положение врагов и т. п. , что не превышает пару десятков переменных, и не долго вносить. Но мне бы хотелось узнать, есть ли способ сохранить всё сразу, не прописывая все те сотни, которые у меня есть.
Есть ли скрипт, который сохраняет вообще любое действие пользователя и программу/игру в целом? Или может быть есть еще что-то упрощённое?
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
@lucky_guy228
Не рекомендую использовать для этого PlayerPrefs и стандартную сериализацию Unity https://docs.unity3d.com/2020.1/Documentation/Manu.... Почему не стоит использовать PlayerPrefs? Потому что если потом ты захочешь отредактировать или перенести куда-либо свои сохраненные данные это будет очень не удобно. А стандартная сериализация Юнити в Json очень много что не умеет сериализовать (например Dictionary или Enum человекопонятным языком а не цифрами)
Тебе подойдет просто сохранение Json в какую-либо папку (например в StreamingAssets или Resources). Для сериализации в Json настоятельно рекомендую использовать NewtonSoft (https://docs.unity3d.com/Packages/com.unity.nuget....). Вот гайд от Unity, как записывать различные файлы в StreamingAssets https://learn.unity.com/tutorial/working-with-the-...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Попробуйте JSON-сериализацию https://docs.unity3d.com/2020.1/Documentation/Manu... с сохранением данных в playerprefs https://docs.unity3d.com/ScriptReference/PlayerPre... или непосредственно на устройство - https://docs.unity3d.com/ScriptReference/Applicati.... В общем случае этого достаточно. Но, судя по количеству полей данных, вам придётся как-то гарантировать их констистентность и способ восстановления. Если я не ошибся, попробуйте поработать с бд SQLite.
Если вам нужно хранить в облаке, используйте Firebase или Playfab.
Ответ написан
Комментировать
GavriKos
@GavriKos Куратор тега Unity
Серилизуете класс в джсон, джсон записываете в PlayerPrefs.
Но в целом можно под целевой платформой использовать что то другое, а не PlayerPrefs, и писать туда что угодно. Хоть БД используйте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы