Всем привет. Ковыряю потихоньку свою игру в жанре менеджер, и предо мной наконец встал очевидный вопрос: "как лучше хранить данные?".
При первом рассмотрении вопроса, самое простое решение, которое я смог найти в интернете - хранить данные в JSon файле. Но насколько я смог понять, это требует написание (переписывания) большого количества кода, чтобы была возможность конвертации данных в json файл с последующей возможностью извлекать их обратно.
Как я понял JSon работает по схеме "ключ: значение", но значения могут быть только следующих типов "строка, число, объект JSON, массив, boolean".
Вот у меня есть класс Warrior. Я создаю экземпляр этого класса, заполняю его данными и добавляю экземпляр в List<Warrior> PlayerOrder. Есть возможность хранить все данные всех сохраненных экземпляров Warrior из List<Warrior>PlayerOrder одном файле?
При первом рассмотрении вопроса, самое простое решение, которое я смог найти в интернете - хранить данные в JSon файле. Но насколько я смог понять, это требует написание (переписывания) большого количества кода, чтобы была возможность конвертации данных в json файл с последующей возможностью извлекать их обратно.
Как я понял JSon работает по схеме "ключ: значение", но значения могут быть только следующих типов "строка, число, объект JSON, массив, boolean".
Вот у меня есть класс Warrior. Я создаю экземпляр этого класса, заполняю его данными и добавляю экземпляр в List<Warrior> PlayerOrder. Есть возможность хранить все данные всех сохраненных экземпляров Warrior из List<Warrior>PlayerOrder одном файле?
public class Warrior
{
// Общая информация \\
public int id; //Id персонажа
public string first_name; //Имя
public string surname; //Фамилия
public string title; //Титул(звание в игре)
public string nick; //Имя данное игроком
public int age; //Возраст
public int height; //Рост - см
public int weight; //Вес - кг
public string hand; //рабочая рука
public string weapon; //любимое оружие
//Временные параметры\\
public bool life; //Статус: жив/мертв
public bool orden; //Статус: нанят/нет
public int mood; //настроение от 0 до 5
public int skills; //Сумма всех характеристик (новая)
public int skills_old; //Сумма всех характеристик (старая)
public int potential; //Потенциал
public int hp; //Здоровье
public int fitness; //Физическое состояние
public int salary; //Зарплата
//Развитие тела\\
public int strong;
public int agility;
public int coordination;
public int speed;
public int jumping;
public int beauty;
public int perception; //Восприятие
public int stamina; //Выносливость - влияет на усталость и живучесть
public int durability; //Стойкость - сопротивление урону
public int reflex; //Рефлекс - бонусный параметр
public int traumatism; //Склонность к травмам
//Ментальные способности\\
public int intelligence;
public int intuition; //Интуиция
public int composure; //Хладнокровие
public int oratory; //Красноречие
public int luck;
public int leadership; //Лидерство
public int aggression;
public int compliance; //Податливость
public int greediness; //Ненасытность (жадность)
public int loyalty; //Верность
public int ambition; //Амбициозность
public int lustfulness; //Похотливость
public int courage; //Смелость
public int caution; //Осторожность
public int faith; //Вера
//Профессиональность\\
public int trade;
public int politics;
public int world; //Знание о мире
public int engineering;
public int fame; //Известность в мире
public int management; //Управление
public int intrigue; //Интриги
public int science;
public int finance; //Финансы
public int contact; //Связи
public int medicine; //Медицина
//Боевые навыки\\
public int melee; //Оружие ближнего боя
public int ranged; //Оружие дальнего боя
public int shield; //Щиты
public int invisibility; //Скрытность
public int tactics; //Тактика боя
public int technique; //Техника боя
public int orientation; //Ориентация на местности
public int dodge; //Уклонение
}
Также прилагаю примерную схему (чтобы были понятны масштабы) взаимодействия данных в моей игре.
Прошу советов
Принятый ответ
На хгм даже была статья: xgm.guru/p/unity/serialization-unity
Можно что-то с интернета посмотреть: prasetion.medium.com/saving-data-as-json-in-unity-4419042d1334
Можно что-то с интернета посмотреть: prasetion.medium.com/saving-data-as-json-in-unity-4419042d1334
Этого достаточно, чтобы воссоздать геймстейт. Не нужно пытаться засунуть геймобжект, просто сохрани какой-нибудь айди, положение, там скейл и при загрузке закиньно значения могут быть только следующих типов "строка, число, объект JSON, массив, boolean".
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Можно что-то с интернета посмотреть: prasetion.medium.com/saving-data-as-json-in-unity-4419042d1334 Этого достаточно, чтобы воссоздать геймстейт. Не нужно пытаться засунуть геймобжект, просто сохрани какой-нибудь айди, положение, там скейл и при загрузке закинь
Отредактирован ledoed
к сожелению ката так не может а серелизует все сохранение
Пример:
Пример:
Отредактирован ScorpioT1000
1 экземпляр класса Warrior у меня получился примерно 2 кб, всего будет ~500 экземпляров на старте игры. Каждый игровой цикл будет прибавляться еще ~500 экземпляров, + будут выпиливаться экземпляры каждые 10 игровых циклов и каждую смерть Warrior. Ну т.е. на пике вес файла будет максимум
10 мб.
Я не собираюсь никакие бесконечно расширяющиеся карты мира генерировать. 😀
ScorpioT1000: