- Home /
UNet Network Behevior On DeSerialization/Serialization Help
After fiddling around with UNet for a while I've figured out the basics but I still cannot update a custom serializable class of my own creating using SyncVar as as I assume you are supposed to. I've created my own OnSerialization / OnDeserialization scripts to the handle it by converting the class to a byte array, but it would seem that the process of even putting SyncVar on a class causes unity to crash in the editor.
If anyone could help me with this it would be much appreciated, I cannot find anything on the googles. Thanks in advance.
Answer by thegreatzebadiah · Jun 02, 2016 at 02:47 AM
SynVar only works with certain types:
SyncVars can be basic types such as integers, strings and floats. They can also be Unity types such as Vector3 and user-defined structs... http://docs.unity3d.com/Manual/UNetStateSync.html
The way I've been going about this is to sync a base64 encoded string instead and encode / decode a byte array from that. I think I'm about to try syncing a user-defined struct with a byte array now to see if I can get rid of the string encoding overhead.
This is all kind of lame because beneath it all everything is sent as bytes anyway. So we have to convert our byte array to a string just so unity can convert it back into a byte array to send across the network. Very silly.
did you get the SyncVar to work to send byte arrays? Would you $$anonymous$$d linking code, having hard time getting it to work.
Your answer
Follow this Question
Related Questions
How to NetworkSerialize an Array? Always getting non-nullable Error 0 Answers
NetworkReader/Writer with GameObject 0 Answers
Sending binary data causes unexpected problems on server. 1 Answer
Client to client Serialization 1 Answer
NetworkBehaviour.OnDeserialize() does not get called on player prefabs 1 Answer