Aprimore seu jogo do Unity em todos os formatos

No mercado competitivo de jogos, é mais importante do que nunca alcançar o maior público possível. Ao desenvolver jogos para diferentes formatos, como smartphones, tablets, dispositivos dobráveis e computadores, você pode aproveitar um grupo maior de jogadores em potencial e aumentar suas chances de sucesso.

Suporte para o redimensionamento de tela

Para oferecer suporte a diferentes formatos, o jogo precisa ser redimensionável. A capacidade de redimensionamento permite que seu jogo ofereça suporte a configurações de dispositivos, como orientação retrato e paisagem, modo de várias janelas e estados dobrados e desdobrados de dispositivos dobráveis.

Se o jogo não oferecer suporte a todas as configurações de tamanho e orientação da janela, o jogo vai aparecer com efeito letterbox no modo de compatibilidade e, se necessário, vai avisar o jogador antes de mudar para uma configuração sem suporte.

Figura 1. Caixa de diálogo de compatibilidade de configuração.

Para mais informações, consulte Suporte à capacidade de redimensionamento de telas grandes.

Modo de várias janelas

Figura 2. IUs diferentes no computador e dobrável na postura de mesa.

O modo de várias janelas permite que vários apps compartilhem a mesma tela simultaneamente. Os apps podem estar lado a lado ou um acima do outro (modo de tela dividida), um app em uma pequena janela sobrepondo outros apps (modo picture-in-picture) ou apps individuais em janelas móveis e redimensionáveis separadas (modo de formato livre).

Para evitar entrar no modo de compatibilidade quando o jogo for executado no modo de várias janelas, declare que ele pode processar a capacidade de redimensionamento ativando a opção Janela redimensionável nas configurações de build do Unity.

Figura 3. Configurações de resolução e apresentação do Unity para Android

Cortes de tela

Um corte da tela é uma área em alguns dispositivos que se estende até a superfície da tela. Os recortes permitem uma experiência de ponta a ponta, proporcionando espaço para sensores importantes na parte frontal do dispositivo.

Figura 4. Corte de tela.

Para trazer uma experiência de ponta a ponta ao seu jogo, configure-o para ter reconhecimento de SafeFrame. Consulte a API safeArea do Unity para ver a área segura da tela em pixels e ajustar a interface e a UX do jogo, especialmente para os elementos com que os usuários podem interagir.

Posições dos dobráveis

Os dispositivos dobráveis podem estar em vários estados dobrados, como FLAT (totalmente aberto) ou HALF_OPENED (em algum lugar entre totalmente aberto e completamente fechado). Quando um dispositivo está no estado HALF_OPENED, duas posições são possíveis, dependendo da orientação da dobra: de mesa (dobra horizontal) e de livro (dobra vertical). Use a postura de mesa para aumentar a imersão e o engajamento do jogador.

Figura 5. Jogo na posição de mesa com visualização principal na parte vertical da tela e controles na parte horizontal.

Para implementar a posição de mesa, estenda a atividade padrão do Unity e use a biblioteca de layout WindowManager do Jetpack para fazer com que seu jogo reconheça um dispositivo dobrável.

Projeto de exemplo do Unity

O projeto de exemplo do Unity é baseado no projeto de demonstração 2D Lost Crypt (link em inglês). O projeto de exemplo demonstra como oferecer suporte à capacidade de redimensionamento de telas grandes no Unity. O suporte a telas grandes e dispositivos dobráveis exige uma série de mudanças nas opções de build do Unity, além de considerações no layout da câmera e das telas da interface.

O projeto de exemplo está disponível para download. O projeto contém quatro cenas diferentes:

  • Original:suporte para recurso redimensionável básico
  • Ancoragem:igual à cena "Original", mas se adapta a várias proporções e evita o corte da tela.
  • HingeAware:igual à cena "Ancoragem", mas com suporte à postura de mesa
  • Menu principal:inicia a cena, permite a navegação para as outras cenas e oferece suporte total a todas as orientações, dobra, desdobramento e posição de mesa do dispositivo

Ao criar para Android, selecione todas as cenas e defina a cena "Menu principal" como a cena inicial.

Figura 6. A cena "Menu principal" permite navegar para as outras cenas no modo de mesa.

Começar com a compatibilidade com janelas redimensionáveis

Implemente o suporte a vários tamanhos e proporções de tela no app Android de tela grande para garantir que o jogo ou app seja mostrado corretamente em diferentes dispositivos. Para permitir que seu jogo redimensione e mude a proporção, defina a propriedade Resizable Window nas configurações de build do Unity. Consulte a seção "Modo de várias janelas". Ajuste a proporção da câmera e da tela para caber melhor em diferentes telas. Confira as configurações do projeto nas Configurações do build e no arquivo Plugins/Android/AndroidManifest.xml. Teste o recurso redimensionável em tela cheia na cena "Original" do projeto.

Figura 7. A cena "Original" é compatível com o recurso de janela redimensionável.

Entre na imersão em tela cheia ao processar cortes de tela

Permita que seu jogo use a tela inteira para tornar a jogabilidade imerente e oferecer uma experiência melhor ao usuário. Atualize as configurações de âncora da interface do jogo e da câmera para que se ajustem automaticamente ao tamanho da tela. Isso permite que os elementos da interface mantenham as posições em relação ao tamanho da tela.

A cena "Ancoragem" usa o script CameraAspectLock para responder a mudanças de configuração do dispositivo por meio de uma atividade estendida (consulte Assets/Plugins/Android/LargeScreenPlayableActivity.java). A API safeArea do Unity é demonstrada no script SafeZoneAPI, que se vincula ao objeto SafeZone dentro da cena "Ancoragem".

Cena do jogo em tela cheia nas telas interna e externa de um dispositivo dobrável.
Figura 8. Cenário de "Ancoragem" com corte de tela.

Otimizar para dispositivos dobráveis

A última cena do projeto de exemplo do Unity, "HingeAware", contém um objeto ConfigurationManager que responde aos diferentes estados de dobra do dispositivo de destino usando APIs da biblioteca Jetpack e uma atividade estendida (consulte Assets/Plugins/Android/LargeScreenPlayableActivity.java). O cenário usa o script PanelOnFold para controlar a interface com base no status de dobra do dispositivo, por exemplo, mostrando o painel do controle inferior quando o dispositivo está na posição de mesa e ajustando a câmera.

Figura 9. A cena "HingeAware" oferece suporte à postura de mesa.