Night Obscure писал(а):
В общем, я так понял. Создать наперед единый автоматизированный механизм для работы со всеми объектами сразу не выйдет. Да?
Нет, так или иначе после каждого новшевства, тебе придется усовершенствовать систему сэйва, если у тебя правильная иерархия, и новый объект по функционалу похож на другие, то тебе лишь в нужный енуменатор добавить новое значение нужно.
Но что то принципиально новое, потребует как и логику для сохранения-загрузки, так и дополнения в структуре.
p.s. например ты добавил возможность ботам гореть, естественно в структуре в разделе для ботов(структура в структуре), нужно будет добавить булевую IsFire, которая будет хранить, горит ли бот, и вторую переменную TimeFire, это для того что бы помнить как долго горит бот. И так со всем, если ты не будешь использовать структуры, тебя ожидают б0льшие трудности.
p.p.s. еще мне трудно мне понять, зачем вы плодите кучу классов, то есть наследников. В твоем бы случае, у меня было бы просто два блюпринта, один типа чарактер - NPC, второй актор - Building, какой конкретно это нпц или буилдинг, определяют энуменаторы(переменные типа байт) внутри класса, то есть меняют меш и другие параметры.
Мне лично при таком раскладе гораздо удобнее, но большинство почему то это не приемлет. Для сохранения, нужно получить текущее значение енуменаторов в классе, ну и трансформ, добавить эти значения в массив структуры и сохранить.
Если интересует дополнительная оптимизация, значение всех булевых, енуменаторов, и т.д., можно поместить в одной переменной типа стринг, заморачиватся так или нет, каждый решает для себя сам.
Вот пример записи переменных в стринг.
http://picua.org/img/2018-01/21/6u6s892 ... lsvtm6.pngвот так извлекаются данные из стринг
http://picua.org/img/2018-01/21/zswdb14 ... l7ipyw.pngделиметр может быть какой угодно, но если будет например пробел, а у нас переменная Name может иметь значение, из двух слов, то будет ошибка так как там будет пробел, тоже и с другими символами, поэтому я выбрал два этих символа, супер маловероятно что такая комбинация может гдето использоваться..
Последний раз редактировалось
Prytaleks 21 янв 2018, 04:16, всего редактировалось 1 раз.