从每个连接的客户端收集自定义数据

时间:2017-12-09 18:08:26

标签: c# multithreading unity3d client-server multiplayer

在我从头开始的MMORPG项目中,我目前只是将附近在线玩家的实际位置(x,y,z)放到新角色即将登录的地方,所以他在他们的正确的立场。我有一个跟踪玩家位置的变量,但是我需要让所有附近的玩家没有从客户端请求位置,因为我说我把它存储在一个变量中。 进一步说明:一名新玩家登录后即将产生。在他附近有另外5名已经登录的玩家,因此他应该在他们产卵后立即看到他们。在我的多线程服务器代码上,我有变量来保持更新的位置。

  

如何实现该变量以获取每个连接的客户端   职位或任何其他建议?

1 个答案:

答案 0 :(得分:0)

基金会:
您将要定义一个全局更新间隔,如100毫秒,以便所有客户端保持同步。然后,您将要使用UDP协议在客户端和服务器之间传输其位置。 UDP对游戏至关重要,因为速度要快得多,在这种情况下TCP需要太长时间。
使用UDP:
在C#中使用UDP并不难。您建立目标服务器并且服务器建立传入端口,然后您可以开始接受传入和发送传出流量。您将不得不设计一种方法来记住哪个数据包适用于哪个播放器,但只要您为每个UDP数据包添加一个唯一标记,这就很容易。可以找到关于UDP入门的漂亮解释here