Подбор игроков
Этот SDK — это необязательный стартовый набор для пользователей Unity, который позже можно расширять и настраивать.
💡 Возможности
Полные примеры
Автоматизация пинга
Тикеты, группы, команды
Переменные сопоставления
Определения типов (C#)
Локальное тестирование разработки
Кроссплатформенность
Легко настраивается
Автоматический повтор
✔️ Подготовка
🍀 Начало работы
В этом руководстве предполагается базовое знание Подбор игроков концепций и работающего Matchmaker.
Мы настоятельно рекомендуем импортировать наш простой пример и следовать коду по ходу чтения этого документа. Сделать это можно в Unity Package Manager > Edgegap SDK > Samples .
Обзор
Этот пакет включает:
Файлы среды выполнения — будут скомпилированы и включены в сборки клиента и сервера:
Утилиты, специфичные для сервиса:
Подбор игроков - полная интеграция клиента для повторного использования/расширения.
Функции API — определения конечных точек, обработка ошибок и автоматизация логирования.
Специфично для сервиса DTO - типизированные контейнеры данных для API подбора игроков.
Общие утилиты — логирование, HTTP, ping, observables и т. д...
Общие DTO - используются несколькими сервисами Edgegap для передачи данных.
Файлы примеров — включаются в сборку и компилируются ТОЛЬКО если импортированы в ваш проект:
Подбор игроков - примеры обработчиков для минимальной конфигурации.
Подбор игроков - изучите интеграцию UI с ручным выбором региона.
Клиент группы
Автоматизация ping, управление тикетами и получение хоста выполняются клиентом группы.
После создания, родительский Monobehaviour агента (обработчик) должен инициализировать клиент и предоставить:
onMonitorUpdatecallback — отслеживать изменения состояния сервиса,onAssignmentUpdatecallback — отслеживать и реагировать на изменения назначения хоста.
После инициализации этот клиент автоматически выполняет проверки и подключает наблюдателей логирования, завершаясь одним вызовом конечной точки API мониторинга для указания состояния сервиса.
Ожидается, что обработчик клиента возьмёт управление на себя и будет вызывать функции клиента отсюда:
Маякидля получения списка доступных Маяки Ping,MeasureBeaconsRoundTripTimeдля выполнения измерений ping по заданному набору маяков,CreateGroupдля лидера лобби, чтобы создать присоединяемую группу, в которую можно приглашать друзей,JoinGroupдля присоединения к существующей группе с использованием ID группы, переданного через сторонний lobby/backend,SetReadyдля отметки владельца группы и участников как готовых и начала поиска матчей,ResumeMatchmakingзагрузить кэшированную группу и продолжить поиск в случае сбоя клиента,StopMatchmakingчтобы удалить тикет (если матч не найден) и покинуть очередь,Статусдля проверки состояния сервиса Server Browser.
Когда устанавливается новое подключение игрока, ожидается, что игрок отправит свой ID тикета на игровой сервер с использованием вашего netcode, чтобы связать подключения с Подробный обзор.
Сохраняйте сведения о подключении в клиенте или игровом backend, чтобы переподключиться в случае неожиданного сбоя.
🧪 Примеры
Начните работу с примерами, включая полную рабочую интеграцию как для сервера, так и для клиента.
Простой пример
Включает полную реализацию жизненного цикла игрока с измерением ping, управлением тикетами и получением назначения хоста. Демонстрирует, как читать внедрённые переменные матча на стороне сервера.
Изменяйте атрибуты подбора игроков, чтобы легко расширить этот пример и адаптировать его к любой конфигурации.
Выбор региона
У некоторых игроков (или групп) есть особые локализованные условия (например, ISP блокировка, общенациональная блокировка, или другие) и они могут предпочесть выбирать регион вручную, а не только на основе ping.
Изучите наш пример выбора региона и почерпните идеи для реализации UI подбора игроков.
⚙️ Настройка
Этот SDK предназначен для расширения и модификации, хотя некоторые изменения могут быть рискованными:
✅ Обработчик — безопасно подключайте наблюдателей UI и вносите небольшие дополнения или изменения,
⚠️ Агент — изменяйте управление жизненным циклом игрока на свой страх и риск,
⚠️ API — напишите собственную интеграцию с нуля, используя выбранные утилиты.
Обработчики могут отслеживать любые события, генерируемые агентами Server и Client, как описано ниже.
Обязательно ознакомьтесь с Подбор игроков в деталях концепциями перед внесением изменений.
Отслеживать события
Клиент группы генерирует события (действия) для наблюдения и обработки родительским обработчиком.
Предварительный просмотр событий, генерируемых наблюдаемым Монитор :
🟢 Обновление
исправно
Все системы в порядке.
🟢 Обновление
неисправно
Неожиданная проблема.
🔴 Ошибка
не удалось получить монитор
Неверная конфигурация или неожиданная проблема.
🔴 Ошибка
не удалось получить маяки
Неожиданная проблема.
Предварительный просмотр событий, генерируемых наблюдаемым Группа:
🟢 Обновление
создана
Группа успешно создана.
🔴 Ошибка
не удалось создать группу
Не удалось создать группу.
🟢 Обновление
присоединено
Группа успешно присоединена.
🔴 Ошибка
не удалось присоединиться к группе
Не удалось присоединиться к группе.
🟢 Обновление
возобновлено
Группа успешно возобновлена.
🔴 Ошибка
группа не найдена
Не является участником группы, или группа истекла.
🔴 Ошибка
конфликт, покиньте и перезапустите
Пожалуйста, покиньте текущую группу, прежде чем пытаться создать/присоединиться к новой группе.
🟢 Обновление
участник обновлён [{ready}]
Участник обновлён со значением Ready.
🔴 Ошибка
не удалось обновить участника
Не удалось обновить участника группы.
🔵 Уведомление
опрос [{consecutive}/{maximum}]
Клиент инициировал опрос статуса группы.
🔵 Уведомление
опрос остановлен
Клиент остановил опрос статуса тикета.
🔴 Ошибка
опрос не удался, достигнут максимум повторных попыток
Клиент исчерпал максимальное число последовательных повторных попыток опроса. Проверьте состояние сервиса.
🔴 Ошибка
опрос не удался
Клиент получил ошибку, не подлежащую повторной попытке, во время опроса. Проверьте состояние сервиса.
🟢 Обновление
группа обновлена [{status}]
Обнаружено изменение статуса группы во время опроса.
🟢 Обновление
покинута
Тикет успешно удалён.
🟢 Обновление
покинуть не удалось (не найдено)
Клиент не смог найти тикет для удаления, возможно, он истёк.
🟡 Предупр.
покинуть не удалось (уже сопоставлено)
Клиент не смог удалить сопоставленную группу. Отключите покидание или Backfill-матч чтобы заменить игрока.
🔴 Ошибка
покинуть не удалось
Не удалось удалить группу или участника.
🟢 Обновление
удалено
Группа истекла, локальная ссылка удалена.
Последнее обновление
Это было полезно?

