Показать сообщение отдельно
Старый 27.11.2012, 01:35   #804
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Не знаю какой сериализатор в юнити, но System.Runtime.Serialization отлично сохраняет и восстанавливает классы не зная их типа.
В Unity сохраняется только по типу ссылки. Т.е. если ссылка MonoBehaviour, то ни черта не сохранит, даже если в эту ссылку будет записан объект с кучей инфы(
Пример просто на C#, но надеюсь Mono тоже поддерживает.
        private static byte[] Serialize(object obj)
        {
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream stream = new MemoryStream();
            bf.Serialize(stream, obj);
            stream.Close();
            return stream.ToArray();
        }
        private static object Deserialize(byte[] array)
        {
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream stream = new MemoryStream(array);
            object obj = bf.Deserialize(stream);
            stream.Close();
            return obj;
        }
Только, если десириализацию(восстановление) делать в OnEnable можно, то когда сериализацию делать? Проверять в Editor'е, если объект Dirty, то сохранить его?
(Offline)
 
Ответить с цитированием