[System.Serializable] для структур [РЕШЕНО]

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

[System.Serializable] для структур [РЕШЕНО]

Сообщение Palmer 07 авг 2012, 13:50

РЕШЕНИЕ
- наследовать собственные классы следует от ScriptableObject, тогда сериализация будит происходить встроенными средствами юнити
- Если используете наследование, то присваивая обьект производного класса ссылке базового, при сериализации вы его потеряете





есть проблема: класс можно сделать Serializable, а структуру нет :(
а мне всего лишь нужно чтобы структура показывалась в дефолтном инспекторе, и не сбрасывалась при запуске...

P.S.
есть ещё одна проблема связанная с сериализацией. если ссылке присваивается объект класса являющегося наследником типу ссылки, сериализация не происходит
Синтаксис:
Используется csharp
[System.Serializable]
class class1 { }
[System.Serializable]
class class2 : class1 { }
class test
{
    class1 classReference = new class2();//при запуске все данные пропадают
}
Последний раз редактировалось Palmer 18 ноя 2012, 21:16, всего редактировалось 5 раз(а).
Аватара пользователя
Palmer
UNец
 
Сообщения: 35
Зарегистрирован: 27 фев 2011, 01:44
  • Сайт

Re: [System.Serializable] для структур

Сообщение AndreyMust19 07 авг 2012, 14:58

Структура - это недокласс в ОО-языках. Структура как объединение чего-то в одно - это первая попытка в создании классов.
На мой взгляд структуры в таких языках остались только для совместимости, для тех кто привык ими пользоваться.
В вашем случае попробуйте слово struct заменить на class и все должно заработать. Если не нравится как выглядит конкретный скрипт в инспекторе - всегда можно написать собственный инспектор для этого скрипта.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: [System.Serializable] для структур

Сообщение pod4444 07 авг 2012, 15:04

AndreyMust19 писал(а):Структура - это недокласс в ОО-языках. Структура как объединение чего-то в одно - это первая попытка в создании классов.
На мой взгляд структуры в таких языках остались только для совместимости, для тех кто привык ими пользоваться.
В вашем случае попробуйте слово struct заменить на class и все должно заработать. Если не нравится как выглядит конкретный скрипт в инспекторе - всегда можно написать собственный инспектор для этого скрипта.

это не недокласс, а структура. класс это ссылчный тип, структура значимый.
Аватара пользователя
pod4444
Старожил
 
Сообщения: 721
Зарегистрирован: 20 янв 2012, 22:02
Откуда: Воронеж
Skype: pod4444
  • Сайт

Re: [System.Serializable] для структур

Сообщение Palmer 18 авг 2012, 11:00

до сих пор является проблемой. очень плохо когда нет возможности нормално использовать структуры в unity
Аватара пользователя
Palmer
UNец
 
Сообщения: 35
Зарегистрирован: 27 фев 2011, 01:44
  • Сайт

Re: [System.Serializable] для структур

Сообщение Neodrop 18 авг 2012, 12:27

написать свой сериализатор и сохранять в строку.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: [System.Serializable] для структур

Сообщение Palmer 03 сен 2012, 10:28

Neodrop писал(а):написать свой сериализатор и сохранять в строку.

как написать свой сериализатор?
эта возможность как то в unity встроена или всё вручную писать придётся?


есть ещё одна проблема связанная с сериализацией. если ссылке присваивается объект класса являющегося наследником типу ссылки, сериализация не происходит
Синтаксис:
Используется csharp

[System.Serializable]
class class1 { }
[System.Serializable]
class class2 : class1 { }
class test
{
    class1 classReference = new class2();//при запуске все данные пропадают
}
 
Аватара пользователя
Palmer
UNец
 
Сообщения: 35
Зарегистрирован: 27 фев 2011, 01:44
  • Сайт


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1