private byte[] Serialize(SerializablePacket packet, int objectId = 0)
    {
        PacketHeader header       = new PacketHeader();
        MemoryStream memoryStream = new MemoryStream();

        header.protocolId = currentPacketId;
        header.type       = packet.packetType;
        header.Serialize(memoryStream);

        Debug.Log("Serialize: " + header.type);

        if (header.type == PacketType.User)
        {
            UserPacketHeader userHeader = new UserPacketHeader();
            userHeader.id       = currentPacketId;
            userHeader.clientId = NetworkManager.Instance.clientId;
            userHeader.objectId = objectId;
            userHeader.userType = packet.userType;
            userHeader.Serialize(memoryStream);
        }
        packet.Serialize(memoryStream);
        memoryStream.Close();
        return(memoryStream.ToArray());
    }