Mirror WebGL
Это руководство поможет вам использовать MirrorWebsocket Transport и создать безголовый сервер на Edgegap для проекта Unity.
В этом руководстве будет использован открытый пример проекта Tanks, доступный в примере Mirror в папке Assets/Mirror/Examples/Tanks.
Вы можете найти финальную версию этого примера на нашей GitHub
Переключить транспорт
Сначала нам нужно внести некоторые изменения в базовую сцену, прежде чем мы будем готовы собрать игровой сервер.
Откройте
Scene.unityрасположенный вAssets/Mirror/Examples/Tanks/Scenes;В
NetworkManagergameObject, удалите компонент транспортаKcpTransportскрипт и замените его наSimpleWebTransportрасположенный вAssets/Mirror/Transports/SimpleWeb, также убедитесь, что обновили поле Transport компонентаNetworkManagerскрипта этим новым транспортом. Убедитесь также, что опцияAuto Start Server Buildтоже выбрана.В зависимости от вашей версии Mirror, возможно, потребуется изменить/обновить
NetworkManagerHUDчтобы он работал с транспортами, отличными от KCP, а также чтобы можно было вводить значение порта в HUD перед подключением к серверу.
Запомните порт, используемый для сетевых коммуникаций, обозначаемый как [GAME PORT]. В данном случае используется порт 7778.
Сборка игрового сервера и контейнеризация
Чтобы облегчить процесс контейнеризации и развертывания, можно использовать последнюю версию плагина Edgegap для Unity на нашем GitHub для автоматизации процесса. Для получения дополнительной информации о том, как использовать этот плагин, вы можете ознакомиться с нашим документацией.
Если вы предпочитаете, вы также можете следовать этим пошаговым инструкциям.
Когда игра будет готова, перейдите на Экран сборки в Unity Editor, в меню Файл -> Параметры сборки в верхних меню. Убедитесь, что выбрали правильные пресеты в зависимости от вашей версии Unity.
До версии 2021.2:
Установите
Целевую платформукLinux;Установите
Архитектурукx86_64;Отметьте
Server Buildопции.
В противном случае:
Установите
ПлатформакВыделенный сервер;Установите
Целевую платформукLinux.
Затем нажмите собрать и выберите новую пустую папку с именем linux_server в качестве места назначения файла. Перенесите linux_server папку во вторую пустую папку, которая в этом документе будет называться [SERVER BUILD] папку, указанную в этом документе. Добавьте следующий Dockerfile и boot.sh файл в папку [SERVER BUILD] папку:
Dockerfile
boot.sh
Обязательно замените [YOUR GAME] заменители на имя сгенерированного файла
Затем откройте командную строку в папке [SERVER BUILD] ; Выполните следующие команды Docker, чтобы создать образ вашей сборки и отправить его в приватный реестр:
Для пользователей с ARM CPU (Mac M1, M2 и др.) см. специальную страницу.
Использование Linux
Использование cmd
Использование Powershell
Развертывание сервера на Edgegap
После входа в панель управления Edgegap перейдите на страницу Приложения и игры . Нажмите на Создать новое в правом верхнем углу, чтобы получить доступ к форме создания приложения. Ниже поля и как их правильно заполнить:
Название приложения: Может быть любым заметным именем, которое вы хотите использовать, чтобы легко распознать приложение среди других.
Изображение: Может быть любым конкретным изображением, которое вы хотите использовать, чтобы легко распознать приложение среди других.
Имя версии: Вы можете указать имя версии, чтобы описать назначение версии, которую вы разворачиваете. Примеры: «demo», «production», «v1», «v2»
Контейнер:
Реестр: «[URL]», где [URL] — значение из учётных данных, которые можно отобразить на странице репозитория контейнеров.
Репозиторий образа: «[PROJECT]/[YOUR GAME]», где [PROJECT] и [YOUR GAME] — значения, которые вы использовали ранее при отправке образа Docker.
Тег: «[TAG]», где [TAG] — значение, которое вы использовали ранее при отправке образа Docker.
Отметьте «Используется приватный репозиторий»
Имя пользователя приватного реестра: «[USERNAME]», где [USERNAME] — значение из ваших учётных данных.
Токен приватного реестра: «[TOKEN]», где [TOKEN] — значение из ваших учётных данных.
Требования: Оставьте как есть.
Порты : Нажмите
+ Добавить портчтобы добавить новый порт, и добавьте следующие записи:7778- WS - включить TLS Upgrade (Beta)
Если вы используете опцию WSS, важно включить опцию TLS Upgrade . В противном случае вы столкнетесь с ошибками, подобными следующей, в логах контейнера на панели Edgegap.

После создания приложения вы можете нажать кнопку Deploy кнопку, чтобы продолжить развертывание вашего игрового сервера. Как только статус вашего развертывания будет установлен как Готов, вы сможете подключиться к серверу с клиентской версией игры. Обратите внимание на Хост URL и, на вкладке Port Mapping вашего развертывания, на внешнему порту , который доступен публично.
Тестирование клиента
В редакторе
Вернувшись в редактор Unity в сцене танка, выберите игровой объект NetworkManager gameObject и измените следующие настройки:
В
Сетевом менеджерекомпонент:Установите
Сетевой адреснаХостURL развертывания сервера;Снимите флажок с
Auto Start Server Buildопции.
В
Simple Web Transportкомпонент:Установите
Портзначение навнешнему портуразвертывания Edgegap, например:32821;Убедитесь, что опция
Client Use WSSвключена.


После этого нажмите Play в редакторе, затем нажмите кнопку Клиент ; Вы подключитесь к серверу и сможете поиграть через короткое время.
На Itch.io
Чтобы разместить клиент игры на Itch, вам нужно будет сделать клиентскую сборку; Для этого вам потребуется установить модуль WebGL Build Support для вашей версии Unity. После этого вернитесь в Экран сборки в Unity Editor, в меню Файл -> Параметры сборкии выберите следующие параметры:
Установите
ПлатформакWebGL;Откройте
Player Settings. В разделеPlayer -> Publishing SettingsустановитеCompression FormatкGzipи убедитесь, что опцияDecompression Fallbackвыбрана. Сохраните эти настройки и закройте окно.

Затем нажмите собрать и выберите новую пустую папку с именем build в качестве места назначения файла. Перенесите build папку во вторую пустую папку, которая в этом документе будет называться [CLIENT BUILD] папкой.
После завершения сборки игры сожмите файлы этой папки build в ZIP-архив, убедившись, что они находятся в корне архива. Затем просто загрузите ZIP-файл в ваш проект на Itch и убедитесь, что выбрали опцию воспроизведения в браузере. После запуска игры убедитесь, что сетевой адрес и значения порта установлены правильно в HUD, затем нажмите кнопку Клиент чтобы играть.
Хостинг клиента на Edgegap
Даже можно разместить клиент вашей игры на Edgegap! Для этого добавьте следующий Dockerfile и nginx.conf файл в папку [CLIENT BUILD] папку:
Dockerfile
nginx.conf
Продолжите с теми же командами Docker, что и ранее чтобы собрать и отправить образ вашего клиентского приложения в приватный репозиторий, но из окна командной строки, открытого в папке [CLIENT BUILD] . Убедитесь, что используете имя образа, отличное от имени для вашего сервера.
Затем создайте новое приложение для вашего клиента на панели Edgegap с следующими настройками:
Название приложения: Может быть любым заметным именем, которое вы хотите использовать, чтобы легко распознать приложение среди других.
Изображение: Может быть любым конкретным изображением, которое вы хотите использовать, чтобы легко распознать приложение среди других.
Имя версии: Вы можете указать имя версии, чтобы описать назначение версии, которую вы разворачиваете. Примеры: «demo», «production», «v1», «v2»
Контейнер:
Реестр: «[URL]», где [URL] — значение из учётных данных, которые можно отобразить на странице репозитория контейнеров.
Репозиторий образа: «[PROJECT]/[YOUR GAME]», где [PROJECT] и [YOUR GAME] — значения, которые вы использовали ранее при отправке образа Docker.
Тег: «[TAG]», где [TAG] — значение, которое вы использовали ранее при отправке образа Docker.
Отметьте «Используется приватный репозиторий»
Имя пользователя приватного реестра: «[USERNAME]», где [USERNAME] — значение из ваших учётных данных.
Токен приватного реестра: «[TOKEN]», где [TOKEN] — значение из ваших учётных данных.
Требования: Оставьте как есть.
Порты : Нажмите
+ Добавить портчтобы добавить новый порт, и добавьте следующие записи:80- HTTPS

После создания приложения вы можете нажать кнопку Deploy кнопку, чтобы продолжить развертывание клиентского приложения. Когда развертывания сервера и клиента будут установлены как Готов, откройте Хост URL клиентского приложения по указанному внешнему порту в вашем браузере, и вы сможете играть после установки правильных значений в HUD игры!

Если вам нужна дополнительная информация о интеграции Mirror и websocket, вы можете обратиться к их документацией.
Последнее обновление
Это было полезно?

