我开始用lidgren 编写我自己的网络。我很远。我的目标是稍后制作我自己的主服务器(lidgren 有一个示例)和一个自动匹配服务器,它托管服务器并再次最近。
我厌倦了 Unity Networking(它很容易但有限)、UNet 和其他诸如 photon 之类的东西。Photon 很棒,但对我的计划来说很昂贵……而其他人没有自动配对……或者他们想让它仍然留在服务器上。
好吧,我试着解释我的想法和问题。我想做一个我想调用的动态序列化方法:
void OnULGNetworkSerialize(NetIncomingMessage msg)
客户端可以发送非常不同的东西,如 int、float、bool、vector3、vector2 等。
消息发送到服务器..并且服务器需要发送回其他客户端。客户端具有相同的代码,但服务器没有。那么我该如何解决这个问题。
这部分(服务器):
// Serializing
void OnULGNetworkSerialize(NetIncomingMessage msg)
{
int lenght = (int)msg.ReadByte();
for (int i = 1; i < lenght; i++)
{
// Read different types here
}
}
因此,如果您查看代码,也许您知道我想尝试什么。服务器或客户端并不总是具有相同的消息长度和相同的类型。那么我怎样才能获得类型并发送给所有客户呢?