Есть такая задача - хранить список разных экземпляров
В духе
public List<object> list = new List<object>();
Но проблема в том, что List<object> не сериализуем в Unity (ибо тип object не сериализуемый, так как подразумевает любой тип, как сериализуемый, так и не сериализуемый)
Все данные которые я собираюсь хранить - сериализуемы, это всякие Object, bool, int
Что делать и как быть в этой ситуации.
Я пробовал хранить объекты в генерик классе, аля Value<T> : ScriptableObject, от которого пришлось создавать кучу оболочек:
ValueBool : Value<bool> 
ValueString : Value<string> 
Таким образом я мог хранить List<ScriptableObject>, хранящий внутри нужные мне экземпляры сериализуемых типов.
И такое решение меня совсем не устраивает, объекты становятся слишком тяжелыми
#НадоДвигатьРоднойQAДажеЕслиНеПоймут

Принятый ответ

Пробовал юзать бинарную сериализацию данных, но все заступорилось сразу как только оказалось что объекты, наследуемые от Object не помечены аттрибутом Serializable.
Запаковать Object - способа не нашел. Была идея закидывать InstanceID, однако минус в том, что достать по нему инстанс в игровом режиме нельзя - по этому идентификатору объекты восстанавливаются только в редакторе.
Отталкиваясь от этой информации и наступив на кучу прочих граблей, с уверенностью могу сказать, что "не тяжелого" способа хранить такие списки в Юнити на данный момент просто нет.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
10 лет назад
0
Лично я не вижу другого метода, кроме хранения инфы об объектах в сериализированных типах данных, структурах или классах, с соответственными методами преобразования этой самой инфы.
0
27
10 лет назад
0
Вот наталкивался на мысль - может тут нужно применить какой-нибудь нестандартный метод сериализации?
Еще есть намек на использование фич сериализации 4.5.1 - они там добавили специальный интерфейс для "ручной обработки". Посмотреть, потрогать что это такое. Если получится - дополню статью по сериализации + отпишу подробней тут за результат
0
27
10 лет назад
Отредактирован Devion
0
Пробовал юзать бинарную сериализацию данных, но все заступорилось сразу как только оказалось что объекты, наследуемые от Object не помечены аттрибутом Serializable.
Запаковать Object - способа не нашел. Была идея закидывать InstanceID, однако минус в том, что достать по нему инстанс в игровом режиме нельзя - по этому идентификатору объекты восстанавливаются только в редакторе.
Отталкиваясь от этой информации и наступив на кучу прочих граблей, с уверенностью могу сказать, что "не тяжелого" способа хранить такие списки в Юнити на данный момент просто нет.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.