Question by
troyle · Jul 30, 2018 at 01:48 PM ·
networkingserializationsteambinaryformatterdeserialization
"SerializationException: Unexpected binary element: 0" on Deserialization of struct
I'm trying to send messages over Steamworks and am using a Serialize/Deserialize function to send the data. However, on the receiving side, I get the error: "SerializationException: Unexpected binary element: 0" when I attempt to deserialize the data.
Sending the data:
if (Start.gameObject.activeSelf) //isHost
{
readyStatus.myStatus = HostReady.isOn;
target = SteamMatchmaking.GetLobbyMemberByIndex(LobbyID, 1);
}
else
{
readyStatus.myStatus = ClientReady.isOn;
target = SteamMatchmaking.GetLobbyMemberByIndex(LobbyID, 0);
}
byte[] data = Serialize.SerializeClass(readyStatus);
if(!SteamNetworking.SendP2PPacket(target, data, (uint)data.Length, EP2PSend.k_EP2PSendReliable, 2))
Debug.Log("Fail Send");
Receiving Data:
readyStatus = (ReadyStatus)Serialize.DeserializeClass(bytes, size);
////////////////////////////////////////////////////////
public static object DeserializeClass(byte[] buffer, int size)
{
MemoryStream stream = new MemoryStream(buffer, 0, size);
BinaryFormatter bf = new BinaryFormatter();
return bf.Deserialize(stream);
}
/////////////////////////////////////////////////////////
if (Start.gameObject.activeSelf) //isHost
ClientReady.isOn = readyStatus.myStatus;
else
HostReady.isOn = readyStatus.myStatus;
This also trips the error every frame because the message is never read properly
Thanks in advance!
Comment