Unity + C#: проблемы с десериализацией

Создаю мультиплеерную игру на сокетах (клиент-сервер). Карту уровня создаю на сервере и передаю на клиент (сервер и клиент располагаются на разных компьютерах) и при этом при помощи BinaryFormatter преобразую объект карты в байтовый массив.

[Serializable]
    public class Labr
    {
        public List<List<MultiPlayerPoint>> maze { get; set; }

        public int start_x { get; set; }
        public int start_y { get; set; }
    }

    [Serializable]
    public class MultiPlayerPoint
    {
        public MultiPlayerPoint(char symbol, int x, int y)
        {
            this.symbol = symbol;
            up = down = left = right = false;
            this.x = x;
            this.y = y;
            door_key = ' ';
        }

        public int x;
        public int y;
        public char door_key;
        public char symbol;
        public bool up, down, left, right;
    }

На клиенте байтовый массив пытаюсь преобразовать обратно в объект карту. Но возникает проблема: BinaryFormatter не хочет конвертировать из байтового массива в объект на клиенте. Выдает сообщение "SerializationException: The input stream is not a valid binary format".

Если я запускаю игру (клиент и сервер) на одном компьютере, то все работает нормально. В чем причина ошибки не знаю.


Ответы (0 шт):