Skip to content

Instantly share code, notes, and snippets.

@James-Frowen
Created December 12, 2020 22:01
Show Gist options
  • Save James-Frowen/a6e2679b5b2e7fd3964debde0a83bbcf to your computer and use it in GitHub Desktop.
Save James-Frowen/a6e2679b5b2e7fd3964debde0a83bbcf to your computer and use it in GitHub Desktop.
Override type read/write functions per field/parameter
public class PackedIntSerializer : IMirrorSerializer<int>
{
public int Read(NetworkReader reader)
{
// unpack
}
public void Write(NetworkWriter writer, int value)
{
// pack
}
}
public class MyBehaviour : NetworkBehaviour
{
[SyncVar(serializer = typeof(PackedIntSerializer))]
public int MyValue;
[ClientRpc]
public void RpcDoStuff([NetworkSerializer(serializer = typeof(PackedIntSerializer))] int count)
{
}
}
public struct MyMessage : NetworkMessage
{
[NetworkSerializer(serializer = typeof(PackedIntSerializer))]
public int MyValue;
}
public interface IMirrorSerializer<T>
{
void Write(NetworkWriter writer, T value);
T Read(NetworkReader reader);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment