在测试和使用Unity创建多人游戏时,我有一个“联网游戏”按钮,可在LAN模式下连接玩家。这里有两种选择:将游戏托管为服务器,或作为客户端加入游戏。
我希望服务器或主机的状况能够自动解决,这意味着如果已经有主机,则单击“网络游戏”作为客户端进行连接;但是如果没有主机,则单击“网络游戏”将创建LAN主机。
足够简单:
private void NewLANGame()
{
// Continue as a client if there is already a connection; or else, start as a LAN host
if(networkManager.IsClientConnected())
{
networkManager.StartClient();
Debug.Log("Client started");
}
else
{
networkManager.StartHost();
Debug.Log("Host started");
}
SetStartMenuActivation(false); // Revert to the HUD
}
但显然,networkManager.IsClientConnected()
仅指互联网游戏。在LAN上的任何情况下,IsClientConnected()
返回false。
我一直在测试和搜索不同的方法调用,但均未成功。我一直在比较Unity NetworkManagerHUD
脚本以查找有用的代码,但是没有打开任何东西。
有人知道用于检测LAN主机是否已经存在的正确方法吗?