在 unity3D 中开发小应用程序期间,我遇到了一个问题。我使用套接字将数据从服务器发送到客户端。客户端和服务器都有一个相同的类,因此服务器中的数据在序列化,发送,然后在客户端反序列化。(发送数据大约1 MB,它包含文件)。当我使用c#console应用程序项目时,而不是unity3d它工作正常,从服务器获取数据执行没有延迟。但在unity3d中却没有。问题是在反序列化对象时。(10次尝试就可以正常工作))。任何人都可以解释什么事情? (如果有帮助,我可以展示我的代码)
答案 0 :(得分:0)
有些代码会很好,错误消息会更好。
您的C#控制台应用程序项目是否使用单声道捆绑的单元构建?如果没有,请知道unity的.NET实现远不是微软的.NET和现代的Mono。
除此之外,序列化在Unity中是一个非常恼人的话题,因为它碰巧引发了一些问题:
查看JSON.Net,它在Unity中非常有用。远非完美,但大多数东西在一些黑客攻击之后起作用。如果你想要的话,其中一些黑客已经在20美元的资产商店套餐中制作(远非完美,但在简单的使用案例中就足够了 - 必须推出我的补丁一天)
答案 1 :(得分:0)
我阅读了您的评论“对于JSON.NET,我认为在我的情况下它将没有用,因为套接字服务器仅发送字节(或字符串)。”
您只需将JSON序列化为字符串即可。然后像这样被咬住:
byte[] jsonData = Encoding.ASCII.GetBytes (yourJsonGoesHere)
,您的字符串JSON字节已准备好从服务器发送或发送到服务器。其次,如果您使用的是binaryformatter,请尝试阅读文档中的binaryformatter.binder。