【问题标题】:How to check if a host exists before starting a client or host如何在启动客户端或主机之前检查主机是否存在
【发布时间】:2016-10-05 10:12:28
【问题描述】:

我试图让我的多人游戏在加载场景后立即连接到服务器,但我不知道如何事先检查主机是否已经存在,以便我知道是否调用函数 StartHost( ) 或 StartClient()。

我试过了:

  1. 创建一个名为 hostExists 的布尔 SyncVar,当 StartHost() 在其中一个播放器上调用时设置为 true,因此如果 hostExists 等于 true,则将调用 StartClient(),但这不起作用。
  2. 使用 OnFailedToConnect() 函数,这样如果连接失败,因为已经有一个主机,该函数将调用 StartClient(),但这也不起作用,因为该函数只有在 StartClient( ) 函数失败。

我仍然是网络新手,我已经研究了一段时间的网络以找到这个答案。是否有任何 Unity 类可以让我进行简单的 ping 检查?提前感谢您回答我的问题。

【问题讨论】:

    标签: c# networking unity3d server localhost


    【解决方案1】:

    我会说,如果您有办法提取 IP(或其他一些玩家信息),请进行简单的 ping 检查以查看它们是否存在并持有“主机值”。用 bool 切换它:)

    【讨论】:

    • 是否应该在 UnityEngine 中使用 Ping 类?
    • 请为我提供一个 Unity 类,让我能够解决我的问题。我知道你必须做一个简单的 ping 检查才能解决这个错误,但我不知道如何。
    猜你喜欢
    • 2010-11-07
    • 1970-01-01
    • 2011-02-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多