Fishnet WebGL
Это руководство поможет вам использовать FishNetтранспорт Websocket, Bayou, и создать безголовый сервер на Edgegap для проекта Unity.
Вы можете найти окончательный пример проекта на нашем GitHub, в разделе Fishnet_v4.1.6R_WebGL папки. Это руководство должно работать с любой версией Fishnet, при условии, что вы используете соответствующую версию Bayou для неё.
Поскольку FishNet версии 4.1.6R поставляется с включённым плагином Edgegap, мы будем использовать его для автоматической сборки и контейнеризации нашего игрового сервера, хотя это можно сделать и вручную с помощью Dockerfile.
Для получения дополнительной информации о плагине вы можете прочитать нашу документацию здесь.
Вам необходимо, чтобы Docker был запущен, чтобы всё работало корректно.
Требования Unity
Этот проект протестирован на версии Unity 2021.3.16f1. С ней необходимо установить следующие модули:
Поддержка сборки WebGL;
Поддержка сборки выделенного сервера Linux;
Поддержка сборки Linux (IL2CPP).
Переключить транспорт
Скачайте пакет Unity для Bayou на этом GitHub. Импортируйте пакет в игровой проект через панель инструментов в Asset/Import Package/Custom Package....
Откройте MainMenu сцену, расположенную в Assets/SpaceEdge/Scenesвашей игры. NetworkManager gameObject, удалите компонент транспорта Tugboat . Замените его на Bayou транспорт, находящийся в Asstes/FishNet/Plugins/Bayou. Обратите внимание на установленное значение порта, в данном случае 7770.
Убедитесь, что включена опция Start On Headless для сборки сервера.

Сборка игрового сервера и контейнеризация
Откройте плагин Edgegap через меню панели инструментов Edgegap/Edgegap Hosting . Проверьте ваш Edgegap API Token и либо создайте, либо загрузите приложение для игры. Убедитесь, что port значение совпадает со значением транспорта Bayou. Выберите WS protocol, затем введите New Version Tag.
Когда всё будет правильно настроено, нажмите Build and Push, что автоматически контейнеризирует ваш игровой сервер и создаст новую версию приложения на панели Edgegap после короткого ожидания.
Тестирование клиента
В редакторе
Вернувшись в проект, выберите MatchmakingSystem gameObject и измените следующие поля:

AppName: Установите значение «Application name», которое вы использовали с плагином Edgegap.
AppVersion: Установите значение «Version name», которое вы использовали с плагином Edgegap.
AuthHeaderValue: Установите значение токена Edgegap API, который вы использовали с плагином Edgegap.
Удалите токен слово из токена API, потому что мы задаём это как схему заголовка аутентификации во время Awake() метода скрипта MatchmakingSystem.
Откройте MatchmakingSystem , расположенного в Assets/SpaceEdge/Scripts/Systems, где вы также можете обновить те же значения. Найдите "UDP_PORT" и замените на "Game Port".
В предыдущих версиях этого примера приложение создавалось вручную через панель управления Edgegap, и имя UDP_PORT использовалось для порта, используемого сервером.
Плагин Edgegap автоматически называет порт Game Port вместо этого, поэтому мы должны убедиться, что скрипт обновлён. Иначе игра не будет работать.


Убедитесь, что вы также снимете галочку с Start On Headless в NetworkManager gameObject.
После этого нажмите Play в редакторе, затем введите имя в текстовое поле и нажмите Start Game. Игра проверит наличие доступного сервера или автоматически развернёт его, если ни одного нет, прежде чем подключиться к нему.
Если на стороне клиента возникает ConnectionFailed ошибка, это может быть потому, что опция Start On Headless не была включена в серверной сборке, что означает, что развёртывание не готово принимать подключения, поскольку сервер никогда корректно не запустился. Убедитесь, что опция включена, прежде чем пытаться снова, создав новый образ контейнера и версию приложения.
Это также может быть связано с тем, что имя порта версии приложения не совпадает с именем в MatchmakingSystem скрипте. Убедитесь, что оба имеют одинаковое имя, в данном случае "Game Port", прежде чем пытаться снова.
На Itch.io
После того как вы убедились, что игровой клиент работает в редакторе, он должен работать и на Itch.io. Чтобы загрузить игру туда, вам нужно сделать клиентскую сборку в Экран сборки в Unity Editor, в меню Файл -> Параметры сборки. Выберите следующие параметры:
Установите
ПлатформакWebGL;Откройте
Player Settings. В разделеPlayer -> Publishing SettingsустановитеCompression FormatкGzipи убедитесь, что опцияDecompression Fallbackвыбрана. Сохраните эти настройки и закройте окно.

Затем нажмите собрать и выберите новую пустую папку с именем build в качестве конечной папки. Сожмите файлы этой build папки в zip-архив, убедившись, что они находятся в корне архива. Затем просто загрузите zip-архив в свой проект Itch и не забудьте выбрать опцию для запуска файла в браузере. Игра должна работать так же, как в редакторе.
Последнее обновление
Это было полезно?

