Masterserver.UnregisterHost?

Masterserver.UnregisterHost?

我正在尝试从 Masterserver.PollHostData() 中删除旧游戏。当游戏结束时,我 运行 以下脚本客户端仍然从 PollHostData().

获取游戏
    if(Network.isClient)
    {
        if (Network.connections.Length == 1)
        {
            Debug.Log("Disconnecting from server");             
            Network.CloseConnection(Network.connections[0], true);
            MasterServer.UnregisterHost(); //Tried UnregisterHost() first as well.
        }
        else
        {
            Debug.Log("Not connected to server");
        }
    }
    else if (Network.isServer)
    {
        if (Network.connections.Length > 0)
        {
            Network.Disconnect(1000); 
            MasterServer.UnregisterHost(); //Tried UnregisterHost() first as well.
        }
        else
        {
            Debug.Log("No clients connected.");
            Network.Disconnect(0);
            MasterServer.UnregisterHost(); //Tried UnregisterHost() first as 
        }
    }

但是,如果客户端重新启动游戏,我将无法再获得上一个游戏的HostData。我曾尝试在再次轮询之前清除 hostData 但没有成功。创建服务器的玩家没有获得游戏,这很奇怪,因为我在再次分配之前清除了我的 hostData 数组。

我发现一些旧帖子说 UnregisterHost 不起作用,如果是的话我有什么选择?

首先,我不明白为什么

MasterServer.UnregisterHost(); //Tried UnregisterHost() first as well.

到了。因为主服务器有服务器信息,没有客户端信息。

if(Network.isClient)
    {
        if (Network.connections.Length == 1)
        {
            Debug.Log("Disconnecting from server");             
            Network.CloseConnection(Network.connections[0], true);
            MasterServer.UnregisterHost(); //Why?
        }
        else
        {
            Debug.Log("Not connected to server");
        }
    }

解决方法是:

在客户端,您需要在从 MasterServer 请求列表之前调用 MasterServer.ClearHostList();