Is there a more flexible method of sending data over network than RPC?

I’ve asked a similar question before and got a “working” solution but it is not ideal and has it’s limitations. I’m wondering if there’s another way to send data over the network aside from RPC or perhaps a more powerful way of using RPC? Ideally I’d like to be able to send any object across the network. Right now I have a PlayerData object that I want to send to the server and other clients, this contains all the information about a player (name, level, avatar, etc) and it not be ideal to send this information individually. Any help would be appreciated but it’ll need to be fairly efficient both in speed and data size. Thanks in advance!

Protobuf is a good way to send serialized objects over the wire.

Nice properties include fast serialization/deserialization, support on many platforms, good support for backwards/forwards compatibility

Here’s a good quick start tutorial for protobuf in unity: