我正在使用 Unity 制作一个小型网络游戏,我需要将一个(结构)列表发送给其他玩家。由于 Unity 不能发送列表,也不能发送二进制数据,我想将其转换为字符串。它不必是人类可读的。由于我需要在几乎每一帧上发送此列表,我想知道如何将其转换为尽可能小的字符串?
所以,我有一个List<myStruct>
并且想要一个string
非常小的。从字符串到字符串的快速转换也很重要。
请注意,我正在使用 c# 编写所有内容的脚本。
想法?
通过字符串进行数据通信的一种非常紧凑的方法是Protocol Buffers。这是谷歌使用的主要机制之一,所以如果它可以在这样的规模上工作,那对你来说应该没问题。
基本思想是提前知道数据,然后按照设定的顺序(索引)与信息一起发送。这样你就知道元素 1 将是名称,元素 2 将是年龄,依此类推。
碰巧已经有一个名为ProtoBuf.NET的 .NET 实现,非常值得一试。
当然,您总是可以借用这个想法,然后将您的内容解析List<myStruct>
为0:Name|1:Age|2:Something Else
etc 并在另一端进行处理。