using System; using System.IO; using Unity.VisualScripting; namespace Multiplayer.Network { public static class NetworkSerializer { // Optimized serialization with buffer reuse private static byte[] _serializationBuffer = new byte[1024]; public static byte[] ToBytes<T>(T obj) where T : INetworkSerializable { using (MemoryStream ms = new MemoryStream(_serializationBuffer, true)) { obj.Serialize(new BinaryWriter(ms)); return ms.ToArray(); } } public static T FromBytes<T>(byte[] data) where T : INetworkSerializable, new() { using (MemoryStream ms = new MemoryStream(data)) { var obj = new T(); obj.Deserialize(new BinaryReader(ms)); return obj; } } } }