1

Тема: Як об'єднати дві серіалізації в одну?

Привіт. От дивіться. Є два класи. Один клас серіалізується одним чином, а другий клас серіалізується зовсім по іншому. Один з класів є полем іншого класу, як тепер одною строкою серіалізувати клас, котрий містить інший клас?
Приклад:

class CharInfo
{
 
  private Vector3 position; 
 
}

А от тепер треба серіалізувати CharInfo, але якщо ми просто будем серіалізувати його, то вилізе помилка, що клас Vector3 не серіалізується. Але ми можемо використати дещо, що може серіалізувати клас Vector3, але як зробити так, щоб: коли ми хочемо серіалізувати CharInfo, то Vector3 в середині CharInfo перетворюється на масив байтів, а коли приходить по мережі на іншу сторону, то знову перетворюється в Vector3 ?

Картинка, котра пояснює все
http://puu.sh/6X2hz.png
All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

2 Востаннє редагувалося FakiNyan (15.02.2014 17:27:57)

Re: Як об'єднати дві серіалізації в одну?

все вирішилось без додаткової серіалізації, клас Vector3 заміняємо на sVector3

[Serializable]
    public class sVector3
    {
        private float x, y, z;

        public sVector3(Vector3 v3)
        {
            x = v3.x;
            y = v3.y;
            z = v3.z;
        }

        public Vector3 Get()
        {
            return new Vector3(x, y, z);
        }
    }

і виходить так, що на вхід ми передаємо Vector3, на виході отримуємо Vector3, але по мережі передаються float'и xD

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...