2

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

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

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

想法?

4

1 回答 1

3

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

基本思想是提前知道数据,然后按照设定的顺序(索引)与信息一起发送。这样你就知道元素 1 将是名称,元素 2 将是年龄,依此类推。

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

当然,您总是可以借用这个想法,然后将您的内容解析List<myStruct>0:Name|1:Age|2:Something Elseetc 并在另一端进行处理。

于 2013-08-12T14:59:29.773 回答