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".
Если я запускаю игру (клиент и сервер) на одном компьютере, то все работает нормально. В чем причина ошибки не знаю.