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 .