将列表转换为小字符串

本文关键字:字符串 转换 列表 | 更新日期: 2023-09-27 18:27:25

我正在使用Unity制作一个小型网络游戏,我需要向其他玩家发送一个结构列表。由于Unity不能发送列表,也不能发送二进制数据,我想把它转换成字符串。它不一定是人类可读的。由于我需要在几乎每一帧上发送这个列表,我想知道,如何将其转换为尽可能小的字符串?

所以,我有一个List<myStruct>,想要一个非常小的string。从字符串到字符串的快速转换也很重要。

请注意,我使用c#编写所有内容的脚本。

想法?

将列表转换为小字符串

通过字符串进行数据通信的一种非常紧凑的方法是协议缓冲区。这是谷歌使用的主要机制之一,所以如果它能在这种规模上工作,对你来说应该没问题。

其基本思想是提前知道数据,然后将其与信息一起发送到一个集合序列(索引)中。这样你就知道元素1将是名称,元素2将是年龄,依此类推

碰巧已经有了一个名为ProtoBuf.NET的.NET实现,非常值得一试。

当然,您可以借用这个想法,只需将List<myStruct>解析为0:Name|1:Age|2:Something Else等,然后在另一边进行处理。