将列表转换为小字符串

时间:2013-08-12 14:41:16

标签: c# string unity3d

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

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

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

思想?

1 个答案:

答案 0 :(得分:3)

通过字符串传递数据的一种非常紧凑的方法是协议缓冲区。这是Google使用的主要机制之一,如果它可以在那个规模上工作,它应该没问题。

基本思想是提前知道数据,然后以设定的顺序(索引)发送信息。这样你知道元素1将是名称,元素2将是年龄等等。

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

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