【问题标题】:Collect custom data from every connected client从每个连接的客户端收集自定义数据
【发布时间】:2017-12-09 18:08:26
【问题描述】:

在我从头开始的 MMORPG 项目中,我目前被困在获取附近在线玩家的实际位置 (x,y,z) 到新角色即将登录的位置,以便他看到他们在正确的位置.
我有一个变量来跟踪玩家的位置,但我需要获取所有附近的玩家,而不需要从客户端请求位置,因为我说过我将它存储在一个变量中。 进一步解释:一个新玩家登录并且他即将产生。在他附近有 5 名其他玩家已经登录,所以他应该会在他生成后立即看到他们。在我的多线程服务器代码上,我有变量来保持更新位置。

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

【问题讨论】:

    标签: c# multithreading unity3d client-server multiplayer


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 1970-01-01
      • 2011-12-30
      • 2021-09-30
      • 2021-07-31
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多