API высокого уровня для создания сетевых игр в Unity, использует RevenantX/LiteNetLib.
Цель TinyBirdNet — создать среду, в которой вы сможете легко добавлять сетевые возможности в игры Unity, незаметно используя LiteNetLib.
Поддерживает Unity 2017 и выше.
Текущая версия была протестирована в Windows и Linux. Если вы обнаружите какие-либо ошибки, откройте проблему.
Добавление папки TinyBirdNet в раздел «Ресурсы» в ваш проект даст вам все необходимое для начала работы в сети в вашей игре.
В папке «Примеры» вы найдете простую рабочую демо-версию сетевой игры.
Вам понадобится TinyNetGameManager
или производный экземпляр, всегда включенный в вашей игре, поэтому добавьте его в свою первую сцену и отметьте его как «Не уничтожать при загрузке». Для того чтобы ваша игра могла подключиться, требуется уникальный «ConnectKey», желательно включить в строку ключа текущую версию вашего приложения.
Рекомендуемый рабочий процесс — создать класс, производный от TinyNetPlayerController
, и реализовать в нем логику управления игроком. Для каждого нового игрока в игре создается новый TinyNetPlayerController
. Вы можете отправлять входные данные между клиентскими контроллерами проигрывателя и серверным с помощью TinyNetInputMessage
.
Каждый GameObject
, который вы хотите включить сетевой код, должен содержать один TinyNetIdentity
, после этого классы, которые хотят включить сетевой код, должны либо реализовать ITinyNetComponent
, либо вы можете сделать его дочерним элементом TinyNetBehaviour
, чтобы получить доступ ко многим функциям, таким как [TinyNetSyncVar]
и RPC. методы.
Создавая классы, производные от TinyNetBehaviour
, вы можете пользоваться автоматической сериализацией и десериализацией, хотя ручная сериализация/десериализация и использование ITinyNetMessage
по-прежнему возможны.
Вы можете синхронизировать до 64 свойств для каждого TinyNetBehaviour
используя атрибут [TinyNetSyncVar]
. Вы можете в любой момент обойти это ограничение, реализовав свои собственные методы TinySerialize
и TinyDeserialize
.
Вы можете создавать и уничтожать объекты в сети, просто вызывая TinyNetServer.instance.SpawnObject
и TinyNetServer.instance.DestroyObject
на сервере, имея действительный GameObject, содержащий TinyNetIdentity
.
Не забудьте зарегистрировать все префабы, имеющие TinyNetIdentity
, в вашем TinyNetGameManager
вручную или нажав кнопку «Зарегистрировать все префабы TinyNetIdentity» в инспекторе TinyNetGameManager
.