Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Индивидуальные обратные вызовы для подбора игроков

Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее
См. в Словарь
Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects.

При использовании Диспетчера сетиКомпонента сети, который управляет сетевым состоянием проекта. Подробнее
См. в Словарь
с HUD сетевого менеджера, метод NetworkManager.StartMatchmaker включает поиск партнеров и заполняет NetworkManager.matchMaker с объектом NetworkMatch. Как только он активен, HUD Network Manager использует его и вызывает методы в NetworkManager, чтобы вы могли выполнить простой поиск совпадений.

В NetworkManager есть виртуальные функции, которые можно настроить, создав собственный класс из NetworkManager. Затем вы можете настроить способ, которым ваш новый класс NetworkManager отвечает на обратные вызовы Matchmaker.

Вот обратные вызовы и их реализации по умолчанию. Если вы переопределяете их, есть некоторые методы, которые требуют, чтобы вы вызывали базовую реализацию, в противном случае функциональность с Network Manager HUD прерывается. Например, реализация по умолчанию OnMatchCreate запускает хост.

using UnityEngine; using UnityEngine.Networking; using UnityEngine.Networking.Match; public class CustomManager : NetworkManager { public override void OnMatchCreate(bool success, string extendedInfo, MatchInfo matchInfo) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchCreate Success:{0}, ExtendedInfo:{1}, matchInfo:{2}", success, extendedInfo, matchInfo); } if(success) StartHost(matchInfo); } public override void OnMatchJoined(bool success, string extendedInfo, MatchInfo matchInfo) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchJoined Success:{0}, ExtendedInfo:{1}, matchInfo:{2}", success, extendedInfo, matchInfo); } if(success) StartClient(matchInfo); } public override void OnMatchList(bool success, string extendedInfo, List matchList) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnMatchList Success:{0}, ExtendedInfo:{1}, matchList.Count:{2}", success, extendedInfo, matchList.Count); } matches = matchList; } public override void OnDestroyMatch(bool success, string extendedInfo) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); } } public override void OnDropConnection(bool success, string extendedInfo) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); } } public override void OnSetMatchAttributes(bool success, string extendedInfo) { if (LogFilter.logDebug) { Debug.LogFormat("NetworkManager OnDestroyMatch Success:{0}, ExtendedInfo:{1}", success, extendedInfo); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3