Не удается обнаружить клиент Unity NetworkManager по сети LAN? - PullRequest
0 голосов
/ 16 сентября 2018

При тестировании и создании многопользовательской игры с Unity у меня есть кнопка «Сетевая игра», которая подключает игрока в режиме локальной сети.Здесь возможны два варианта: разместить игру в качестве сервера или присоединиться к игре в качестве клиента.

Я хочу, чтобы ситуация с сервером или хостом разрешалась автоматически, а это означает, что если хост уже существует, нажмите "Сетевая игра »подключается как клиент;но если хоста нет, нажатие на «Сетевая игра» создает хост локальной сети.

Достаточно просто:

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() относится только к интернет-игре.В любой ситуации по локальной сети IsClientConnected() возвращает false.

Я безуспешно тестировал и искал различные вызовы методов.Я сравнивал сценарий Unity NetworkManagerHUD, чтобы найти полезный код, но ничего не нашел.

Кто-нибудь знает правильный метод для определения, существует ли хост LAN?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...