For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fishnet WebGL

Это руководство поможет вам использовать FishNetWebSocket-транспорт, Bayouи создать headless-сервер на Edgegap для проекта Unity.

Вы можете найти итоговый пример проекта на нашем GitHub, в Fishnet_v4.1.6R_WebGL папке. Это руководство должно работать с любой версией Fishnet, если вы используете подходящую версию Bayou для неё.

Поскольку версия FishNet 4.1.6R уже включает плагин Edgegap, мы будем использовать его для автоматической сборки и контейнеризации нашего игрового сервера, даже несмотря на то, что это можно сделать вручную с помощью Dockerfile.

Для получения дополнительной информации о плагине вы можете прочитать нашу документацию здесь.

Для корректной работы вам потребуется запущенный Docker.

Требования к Unity

Этот проект протестирован на версии Unity 2021.3.16f1. Вам потребуется установить следующие модули:

  • Поддержка сборки WebGL;

  • Поддержка сборки Linux Dedicated Server;

  • Поддержка сборки Linux (IL2CPP).

Переключите транспорт

Скачайте Unity-пакет для Bayou на этом GitHub. Импортируйте пакет в проект игры через панель инструментов в разделе Asset/Import Package/Custom Package....

Откройте MainMenu сцену, расположенную в Assets/SpaceEdge/Scenes. В объекте NetworkManager удалите компонент транспорта Tugboat . Замените его транспортом Bayou , расположенным в Asstes/FishNet/Plugins/Bayou. Обратите внимание на заданное значение порта, в данном случае 7770.

Не забудьте включить Start On Headless для серверной сборки.

Сборка игрового сервера и контейнеризация

Откройте плагин Edgegap через меню панели инструментов Tools/Edgegap Hosting . Проверьте ваш Edgegap API Token и либо создайте, либо загрузите приложение для игры. Убедитесь, что значение port совпадает со значением транспорта Bayou. Выберите протокол WS затем введите New Version Tag.

После того как всё будет правильно настроено, нажмите Build and Push, после чего ваш игровой сервер будет автоматически контейнеризирован и через некоторое время на панели Edgegap будет создана новая версия приложения.

Тестирование клиента

В редакторе

Вернувшись в проект, выберите объект MatchmakingSystem gameObject и измените следующие поля:

  • AppName: Укажите здесь «Application name», который вы использовали в плагине Edgegap.

  • AppVersion: Укажите здесь «Version name», который вы использовали в плагине Edgegap.

  • AuthHeaderValue: Укажите здесь ваш токен Edgegap API, который вы использовали в плагине Edgegap.

Удалите слово token из токена 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. Игра проверит наличие доступного сервера или автоматически развернёт его, если таковых нет, прежде чем подключиться к нему.

На Itch.io

После того как вы подтвердите, что игровой клиент работает в редакторе, он должен также работать в Itch.io. Чтобы загрузить туда свою игру, вам потребуется собрать клиентскую версию на экране Build в Unity Editor, в разделе File -> Build Settings. Выберите следующие параметры:

  • Установите Platform чтобы WebGL;

  • Откройте Player Settings. В разделе Player -> Publishing Settingsустановите Compression Format чтобы Gzip и убедитесь, что Decompression Fallback опция выбрана. Сохраните эти настройки и закройте окно.

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

Последнее обновление

Это было полезно?