Страница 1 из 1

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

СообщениеДобавлено: 07 авг 2012, 13:50
Palmer
РЕШЕНИЕ
- наследовать собственные классы следует от ScriptableObject, тогда сериализация будит происходить встроенными средствами юнити
- Если используете наследование, то присваивая обьект производного класса ссылке базового, при сериализации вы его потеряете





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

P.S.
есть ещё одна проблема связанная с сериализацией. если ссылке присваивается объект класса являющегося наследником типу ссылки, сериализация не происходит
Синтаксис:
Используется csharp
[System.Serializable]
class class1 { }
[System.Serializable]
class class2 : class1 { }
class test
{
    class1 classReference = new class2();//при запуске все данные пропадают
}

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

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

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

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

это не недокласс, а структура. класс это ссылчный тип, структура значимый.

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

СообщениеДобавлено: 18 авг 2012, 11:00
Palmer
до сих пор является проблемой. очень плохо когда нет возможности нормално использовать структуры в unity

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

СообщениеДобавлено: 18 авг 2012, 12:27
Neodrop
написать свой сериализатор и сохранять в строку.

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

СообщениеДобавлено: 03 сен 2012, 10:28
Palmer
Neodrop писал(а):написать свой сериализатор и сохранять в строку.

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


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

[System.Serializable]
class class1 { }
[System.Serializable]
class class2 : class1 { }
class test
{
    class1 classReference = new class2();//при запуске все данные пропадают
}