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.

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.