
Recentemente, recebi alguns projetos a fazer envolvendo multiplayer. Uma coisa que está facilitando a minha vida Novo modo de reprodução multiplayer de unidade. Deixe -me te dizer o que é, por que você deve usá -loe algumas dicas que podem ser úteis para você, Como, por exemplo, como usá -lo com SteamVR!
Modo de reprodução multiplayer da unidade: o que é e por que é ótimo?
A Unity atualizou recentemente todos os seus serviços multiplayer. Entre esses serviços, também lançou alguns utilitários que são agnósticos da plataforma e podem ser usados com outros plugins multiplayer, como Mirror ou Photon. Um desses utilitários é o Modo de reprodução multiplayer, que permite simular vários jogadores em sua sessão de unidade, para que você possa Teste um jogo multiplayer localmente, sozinhosem a necessidade de pedir a outras pessoas para ajudá -lo, e mesmo sem a necessidade de criar seu aplicativo.
Deixe -me explicar isso melhor. Se você faz um jogo multiplayer, deve ter vários jogadores jogando para testar suas funcionalidades. Portanto, a maneira padrão de realizar um teste geralmente é um dos dois seguintes:
- Você e alguns outros desenvolvedores executam o projeto do editor no modo de reproduçãopara realizar uma partida com vários jogadores
- Você faz uma construção do projeto, e depois execute um teste local sozinho no seu PC Usando a construção e o editor de unidade para simular dois jogadores.
Os problemas dessas abordagens são que o primeiro exige que várias pessoas perdem tempo nos testes, enquanto o segundo exige Fazer uma construção, que é uma operação muito longa e demorada. De qualquer forma, é muito tempo perdido.
É por isso que, com a unidade 6, a unidade saiu com uma ótima idéia, que é Modo de reprodução multiplayer de unidade. Basicamente simula a existência de várias instâncias de unidade no seu PC, todas vinculadas ao mesmo projeto, para que você possa apenas pressionar o jogo e Teste o aplicativo com vários jogadores simuladosem seu editor sozinho. Isso é simplesmente incrível. Como desenvolvedor, Eu posso fazer muitos testes simulando que sou vários jogadores, E envolva a equipe apenas quando eu já resolvi a maioria dos insetos! Mais, Funciona no modo de jogo, Para que eu possa fazer as modificações em tempo real sem precisar construir. Isso economiza a todos muito tempo. E Ele também funciona com projetos de realidade virtual…
Como usá -lo
A unidade já tem um guia muito generoso sobre o modo de reprodução multiplayer de unidadee não faz sentido para mim replicá -lo. Você pode acessá -lo aqui: https://docs-multiplayer.unity3d.com/mppm/current/about/
A versão curta, apenas para que você possa entender rapidamente, é:
- Você usa o gerenciador de pacotes para Instale o pacote de modo de reprodução multiplayer (está no registro da unidade)
- Você abre a janela relacionada ao modo de reprodução multiplayer No menu da unidade: Janela> Multiplayer> Modo de reprodução multiplayer
- Você Ative os jogadores virtuais
- Você espera Unidade para ativar os jogadores (pode levar algum tempo)
E é isso! Você pressiona o jogo e o aplicativo é executado em todos os jogadores virtuais ao mesmo tempo!
VR Times de Run e Compatibilidade
Atualmente, estou sempre usando o OpenXR como o plug -in XR para meus aplicativoscomo é sugerido pela própria unidade, então vou comentar apenas sobre o modo de reprodução multiplayer da unidade (a partir de agora, vou me referir a ele também como “MPPM” para a brevidade) com este plug -in XR.
Oculus/Meta
O melhor tempo de execução do VR para usar com o MPPM é o Oculus/Meta. Se você usa miss+link, MPPM apenas funciona fora da caixa: Você executa o aplicativo e é visto em VR por um dos jogadores virtuais. Em seguida, você clica na janela de um dos outros jogadores, e ela imediatamente obtém o controle do fone de ouvido e dos controladores de VR, e Você pode jogar como o outro jogador. Às vezes, quando você clica na janela de um jogador, o clique não é reconhecido imediatamente (você o vê porque se você girar a cabeça, os visuais não estão girando na janela de interesse, mas em outro). Se o clique não for reconhecido, pegue a barra de aplicação da janela e mova a janela um pouco: geralmente, nesse ponto, a janela reconhece a entrada.
Steamvr
Eu usei principalmente a meta busca pelo meu trabalho multiplayer, e as coisas sempre foram bem. Mas, recentemente, uma atualização em frente à minha missão (obrigado, meta) durante minha viagem à China, então tive que voltar a usar meu Pico 4 para testar meu aplicativo. Pico 4 deve ser usado com VR da vapor. O vapor VR pode funcionar bastante bem com a unidade, mas Tem um problema sério com o MPPM: Apenas um jogador pode usar a VR e os outros vêem uma tela preta. Isso é uma chatice, porque significa que você não pode usar o modo de reprodução multiplayer com o Steam VR. Ou melhor, na verdade, você não poderia, até Tony “The SkarredGhost” encontrar uma solução ontem à noite. É meio hacky, mas salvou minha vida.
Então o que eu percebi Lendo nos fóruns é isso Steam VR não gosta que vários jogadores obtenham o controle disso, Portanto, apenas o último que pede, recebe o controle para sempre, e os outros permanecem sem o suporte à VR. Então o que eu fiz foi Crie um script que faça com que os jogadores obtenham o controle do SteamVR quando obtêm o foco, mas o perca quando perdem o foco. Dessa forma, apenas um jogador de cada vez controla o SteamVR, mas você ainda pode ter vários jogadores em execução ao mesmo tempo, com todos recebendo VR apenas quando necessário. Isso deixa o Steam VR feliz e você feliz ao mesmo tempo.
Para usar o MPPM com o Steam VR, você pode salvar o seguinte script em seu projeto E então anexe -o a um objeto de jogo vazio na cena inicial. Lembre -se também de Defina a sinalizadora “Inicialização manual para MPPM” como TRUE E para salvar a cena.
Graças a este script, você pode clicar nos vários jogadores e ativar a VR neles e fazer seus testes. Percebi que pode haver alguns problemas recentes (como o jogador pode flutuar acima do piso), mas Você pode usar o recurso recente do SteamVR para corrigir esse problema.
Eu também notei que se você usar o script, é melhor do que Quando a primeira janela obtém o controle de VR automaticamente por unidade, você a faz perdê -la clicando em outro lugar (Portanto, perde o foco) e assim por diante até que a última janela obtenha o controle VR. Caso contrário, se a janela principal “roubar” automaticamente o controle VR da primeira janela, a primeira janela poderá ser morta pela unidade e se tornará todo preto. Então Certifique -se de que cada janela obtenha automaticamente o controle de VR quando carregado pela unidade o perder Clicando fora dele, até que todas as janelas tenham sido carregadas.
Se você ainda tem erros …
Se você não conseguiu fazer seu aplicativo funcionar com seu tempo de execução do XRvocê ainda tem uma opção de último recurso: usando o simulador de dispositivo XR. A unidade tem um pré -fabricação que você pode colocar em sua cena, e No modo de reprodução, ele permite controlar um fone de ouvido simulado e dois controladores simulados usando o mouse e o teclado. O simulador também funciona com o MPPM, para que você possa controlar o fone de ouvido e controladores simulados de vários jogadores.

Você pode encontrar tudo sobre isso aqui: https://docs.unity3d.com/packages/(Email protegido)/Manual/xr-device-simulator-overview.html.
Esta solução funciona, Mas é muito desajeitado, porque você precisa mover seu fone de ouvido emulado e controladores emulados um por um, então mantenha -o apenas como seu último recurso.
VPNs e compatibilidade
Eu notei isso Alguns recursos do multiplayer de unidade podem ter problemas se você tiver uma VPN. Eu estava testando um aplicativo com o Unity NetCode usando o MPPM e notei que quando o host da instância mudou a cena atual, os outros jogadores simulados não. Depois de bater a cabeça na parede por mais de meia hora, Percebi que era o VPN criando problemas. Portanto, tenha cuidado para que algumas falhas possam ser causadas pela sua VPN, se você tiver um.
Eu sugiro fortemente que você adicione uma tag a cada um de seus jogadores virtuais. O motivo é que, por exemplo, se você usar a autenticação da unidade, ela pode funcionar bastante bem com o MPPM, mas Ele deve ser capaz de desambiguar os jogadores, para que eles tenham tags diferentes.
Debug no jogador principal
Se você tem problemas e precisa executar o depurador no Visual Studio, A abordagem mais fácil é fazer com que o jogador principal tenha o bug e execute o depurador, como de costume, na instância do Visual Studio associada à instância principal da unidade. Teoricamente, você também pode depurar os projetos relacionados aos outros jogadores, mas achei que era mais desajeitado.
Ignore as exceções do núcleo do Unity XR
Vi que meus jogadores virtuais em alguns projetos usando a interação XR Takitit e XR Hands Tenha alguns erros aleatórios relacionados ao núcleo do Unity XR. Esses erros realmente não estão causando problemas para mim, então eu sugeriria que você os ignora E basta pressionar play e fazer seus testes.
Use as janelas da unidade, se necessário
Os jogadores virtuais mostram apenas a janela do jogo, mas Na verdade, mediante solicitação, eles também podem mostrar as outras janelas da unidade, como o inspetor ou a hierarquia. Isso é desativado por padrão por motivos de desempenho, mas, caso você absolutamente precise mostrá -los, você pode Use o botão Layout no canto superior direito da janela dos jogadores virtuais. Eu sugiro você Mostre essas janelas extras apenas pelo tempo que você precisapara evitar consumir muitos recursos computacionais.
Atualmente, se um jogador tiver uma tag associada, a entrada do mouse não funcionará se você estiver usando o XR Interação Toolkit. Para corrigir o problema do mouse que não está trabalhando nos jogadores com uma etiqueta no modo de reprodução multiplayer da unidade, você pode anexar esse script ao mesmo gameObject segurando o XruiinputModule:
Mantenha os recursos usados
O modo de reprodução multiplayer da Unity executa várias instâncias de unidade ao mesmo tempo, o que é bastante pesado no computador. A VR também é bastante pesada no computador. Usando essas duas tecnologias juntas coloca seu PC em estresse sério. Eu tive que fazer algumas reinicializações de PC enquanto testava meus aplicativos com o MPPM, porque tudo estava bloqueado. Tem sido raro, mas aconteceu. Você foi avisado: não use o MPPM com VR enquanto estiver fazendo outras operações pesadas no seu PC.
Continue fazendo testes multiplayer reais
Eu posso dizer pela experiência que Testar localmente no modo de reprodução não é o mesmo que testar com jogadores remotos executando uma compilação. MPPM pode ajudá -lo a detectar a maioria dos bugs, mas Ainda haverá 5 a 10% dos problemas que aparecerão apenas em testes reais. É por isso Você ainda deve continuar fazendo testes reais e não pode confiar apenas no MPPM. Mas você precisará de menos testes do que antes!
E é isso, espero que este post tenha sido útil para você, e se for o caso, Remarcê -lo com seus colegas de unidade, Inscreva -se na minha newsletter não perder meu próximo artigo sobre VR, ou Doe para o meu Patreon! Desejo -lhe um ótimo momento com o modo de reprodução multiplayer de unidade!
Isenção de responsabilidade: Este blog contém links de propaganda e afiliados para se sustentar. Se você clicar em um link de afiliado, ficarei muito feliz porque ganharei uma pequena comissão em sua compra. Você pode encontrar minha divulgação completa chata aqui.
Relacionado