Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее См. в Словарь Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects. |
Компонент Обнаружение сети позволяет многопользовательским играм Unity находить друг друга в локальной сети (LAN). Это означает, что вашим игрокам не нужно узнавать IP-адрес хоста, чтобы подключиться к игре в локальной сети. Network Discovery не работает через Интернет, только в локальных сетях. Для интернет-игр см. службу MatchMaker.
Компонент Network Discovery может транслировать свое присутствие, прослушивать трансляции от других компонентов Network Discovery и при необходимости присоединяться к соответствующим играм с помощью Диспетчера сетиСетевой компонент, который управляет сетевым состоянием проекта. Подробнее
См. в Словарь. Компонент Network Discovery использует функцию широковещательной рассылки UDP сетевого транспортного уровня.
Чтобы использовать обнаружение в локальной сети, создайте пустой GameObjectосновной объект в сценах Unity, который может представлять персонажей, реквизит, пейзажи, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь в СценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь и добавьте к нему компонент Network Discovery.
Как и HUD Network Manager, этот компонент имеет графический интерфейс по умолчанию, который отображается в представлении игры для управления им, предназначенный для временной разработки, при условии, что вы создаст свою собственную замену для него, прежде чем закончить игру. Обратите внимание, что вам также нужен компонент Network Manager в сцене, чтобы иметь возможность присоединиться к игре через графический интерфейс Network Discovery. Когда игра запустится, нажмите кнопку Инициализировать трансляцию в графическом интерфейсе Network Discovery (в представлении «Игра»), чтобы отправить трансляцию и начать обнаружение других игр в локальной сети.
Компонент Network Discovery может работать в режиме сервера (активируется нажатием кнопки «Начать трансляцию» в графическом интерфейсе) или в режиме клиента (активируется нажатием кнопки «Прослушать трансляцию» в графическом интерфейсе).
В режиме сервера компонент Network Discovery отправляет широковещательные сообщения по сети на порт, указанный в классе инспекцииОкно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет просматривать и редактировать значения. Дополнительная информация
См. в Словарь. Эти сообщения содержат Ключ трансляции Ключ и Версию трансляции игры. Вы можете установить для них любое значение, которое вам нравится, их цель — идентифицировать эту конкретную версию и выпуск вашей игры, чтобы избежать конфликтов — например, ваша игра пытается присоединиться к игре другого типа. Вы должны изменить значение Broadcast Key при выпуске новой сборки вашей игры, которая не сможет подключаться к более старым версиям вашей игры. Компонент следует запускать в режиме сервера, если игра размещается на этом компьютере. Без графического интерфейса по умолчанию вам нужно вызвать функцию StartAsServer(), чтобы компонент работал в режиме сервера.
Находясь в режиме клиента, компонент прослушивает широковещательные сообщения на указанном порту. Когда сообщение получено и Ключ широковещательной рассылки в сообщении совпадает с Ключом широковещательной рассылки в компоненте Network Discovery, это означает, что игра доступна для присоединения в локальной сети. . Без графического интерфейса по умолчанию вам нужно вызвать функцию StartAsClient(), чтобы компонент работал в режиме клиента.
При использовании графического интерфейса по умолчанию и прослушивании трансляций в режиме клиента, если игра обнаружена в локальной сети, появляется кнопка, которая позволяет пользователю этого клиента присоединиться к игре. Кнопка называется «Игра по адресу:», за которой следует IP-адрес хоста.
В компоненте Network Discovery есть виртуальная функция, которую можно реализовать для уведомления о получении широковещательных сообщений.
public class MyNetworkDiscovery: NetworkDiscovery {
public override void OnReceivedBroadcast(string fromAddress, string data)
{
Debug.Log("Received broadcast from: " + fromAddress+ " with the data: " + data);
}
}
Для получения дополнительной информации см. справочную документацию по Scripting API на сайте NetworkDiscovery. Обратите внимание, что сервер Network Discovery и клиент не могут работать одновременно в одном и том же процессе.