Uma API de alto nível para criar jogos em rede no Unity, utiliza RevenantX/LiteNetLib
O objetivo do TinyBirdNet é criar um ambiente onde você possa facilmente adicionar rede aos jogos Unity, enquanto usa o LiteNetLib nos bastidores.
Suporta Unity 2017 e superior
A versão atual foi testada em Windows e Linux. Abra um problema se encontrar algum bug.
Adicionar a pasta TinyBirdNet em Assets ao seu projeto fornecerá tudo o que você precisa para iniciar a rede no seu jogo.
Dentro da pasta Exemplos você encontrará uma demonstração simples de funcionamento de um jogo em rede.
Você precisará de um TinyNetGameManager
ou instância derivada sempre habilitado em seu jogo, então adicione um à sua primeira cena e marque-o como Don't Destroy on Load. É necessário um "ConnectKey" exclusivo para que o seu jogo possa se conectar, de preferência inclua a versão atual do seu aplicativo na sequência da chave.
O fluxo de trabalho recomendado é criar uma classe derivada de TinyNetPlayerController
e implementar sua lógica de controle de jogador lá. Para cada novo jogador no jogo, um novo TinyNetPlayerController
é gerado. Você pode enviar entradas entre os controladores de player do cliente e o do servidor usando um TinyNetInputMessage
.
Cada GameObject
que você deseja incluir código de rede deve conter um único TinyNetIdentity
, depois disso, as classes que desejam incluir código de rede devem implementar ITinyNetComponent
ou você pode torná-lo filho de TinyNetBehaviour
para obter acesso a muitos recursos como [TinyNetSyncVar]
e RPC métodos.
Ao criar classes derivadas de TinyNetBehaviour
você pode aproveitar a serialização e desserialização automáticas, embora a serialização/desserialização manual e o uso de ITinyNetMessage
ainda sejam possíveis.
Você pode sincronizar até 64 propriedades por TinyNetBehaviour
usando o atributo [TinyNetSyncVar]
. Você pode a qualquer momento ignorar esse limite implementando seus próprios métodos TinySerialize
e TinyDeserialize
.
Você pode gerar e destruir objetos na rede simplesmente chamando TinyNetServer.instance.SpawnObject
e TinyNetServer.instance.DestroyObject
em um servidor, dado um GameObject válido que contém um TinyNetIdentity
.
Lembre-se de registrar todos os pré-fabricados que possuem TinyNetIdentity
em seu TinyNetGameManager
, manualmente ou clicando no botão Registrar todos os pré-fabricados TinyNetIdentity em seu inspetor TinyNetGameManager
.