Alura > Cursos de Mobile > Cursos de Jogos > Conteúdos de Jogos > Primeiras aulas do curso Unity Mobile parte 2: interface responsiva e desempenho

Unity Mobile parte 2: interface responsiva e desempenho

Interface Responsiva - Introdução

Tudo bom? Então, nós vamos continuar fazendo o fuga espacial, aquele jogo que nós tínhamos feito no último curso, onde nós paramos mais ou menos pela metade dele. Nós tínhamos feito bastante coisas, mas nós podemos melhorar ainda mais. Podemos refinar o jogo e é isso o que vamos fazer nesse curso. Vamos dar uma olhada nessa tela de menu nesse curso. Por quê?

Eu vou continuar jogando e testando o jogo com o Unity Remote conectado no celular, já que estamos fazendo jogo para celular e eu vou conectar ele via USB no computador. Nós temos a nossa música e vamos criar esses Sliders de música.

Então, se eu clicar nele e for abaixar ou aumentar o volume, nós podemos ver que a música abaixa ou aumenta e com isso vamos conseguir dar a opção para a pessoa que está jogando aumentar ou baixar o volume da música. A mesma coisa para os efeitos sonoros. Se eu clicar aqui e arrastar, nós vamos ter os efeitos sonoros do jogo, que vai ser o auge da pontuação da próxima cena.

Então se eu clicar em “JOGAR”, nós vamos ter o auge da pontuação sendo aumentado ou diminuído por aquele Slider. Nós vamos ver como fazemos para uma configuração em uma cena afetar o áudio na outra cena. E também, nós vamos ter na cena de jogo o Slider. O Slider não, o meteoro indo para cima e baixo. Nós vamos fazer esse movimento oscilatório dele. Nós temos aqui também a nossa pontuação, o ranking que vamos dar uma melhorada. Por quê?

Nós vamos ver aqui que eu tenho o meu nome, Ricardo, já configurado para quando eu for jogar. Se eu trocar de pessoa que está jogando, eu venho e escrevo “Mayra”, por exemplo. Vamos clicar ali no nome, “Mayra”. Se eu clicar em “JOGAR NOVAMENTE”, da próxima vez que formos realmente jogar, vamos clicar no Unity Remote. Vamos jogar aqui. Como eu falei, nós vamos ter esses meteoros indo para cima e para baixo e conforme eu vou jogando, vou ganhando pontos.

Se eu morrer, o nome da Mayra é o que está aqui. Por quê? Porque nós vamos ver que quando nós estamos escrevendo pelo celular não é muito bom, o teclado vai ficar aparecendo. Não é muito legal de escrever. Então como nós não vamos trocar de pessoa que está jogando muito frequentemente, é legal você ter o nome da última pessoa que jogou aqui já configurado. Na nossa cena de jogo você pode ver que o áudio. A trilha sonora está tocando o tempo inteiro.

Ela está um pouco mais baixa porque eu abaixei o volume dela. Na nossa cena de configuração eu baixei o volume dela, mas eu posso aumentar. Como nós vamos fazer tudo isso? Como nós vamos melhorar esse jogo? Nós vimos o que nós vamos fazer, mas como nós vamos ver? Vamos ter aqui na nossa cena de configuração, na cena de menu, os Sliders. Então dentro do Canvas nós vamos ter o Slider da música e o Slider dos efeitos sonoros. Nós vamos ter também um controle.

O Script de controle da música e o Script de controle do volume dos efeitos sonoros. Para isso, nós vamos usar esse Mixer. Esse novo asset que nós vamos ver que vai ser o “Audio Mixer”. Então ele vai separar em grupos os áudios e nós vamos fazer isso nesse curso. Além disso, nós vamos pegar o nosso projeto - e se eu vier na cena de jogo, nós temos a barreira móvel, que é esse meteoro que fica para cima e para baixo, então nós vamos criar esse movimento oscilatório.

Mas além disso, se eu sair do modo de play e tirar a colisão para não ficar morrendo, nós vamos ver que eu tenho agora uma reserva de inimigos porque eu vou estar reutilizando os objetos. Então eu tenho esse objeto "ReservaDeInimigos", que nós vamos criar. Eu vou ter inimigos indo para cima e para baixo. Indo para cima e para baixo não, sendo ligados e desligados, conforme a necessidade.

Nós vamos estar reutilizando objetos. Nós vamos ver que não é legal ficarmos gerando lixo para o nosso computador. Nós vamos melhorar a performance, principalmente se o nosso público alvo é o celular, se o nosso público vai jogar dentro do celular, que é um aparelho com menos capacidade que o computador. Então nós também vamos fazer isso nesse curso. Nós vamos ver como reservar, como fazer uma reserva de inimigos, uma reserva de objetos e como reutilizá-los. É uma boa prática!

Além disso, você pode ter reparado que nós estamos jogando em Full Screen. Se eu jogo em Full Screen, toda a minha interface está pronta para isso, ela não muda de tamanho e não muda de proporção. Ela fica ali da mesma maneira, ou seja, a nossa interface agora é responsiva. Então nós já tínhamos visto como fazíamos isso um pouco, quando nós fizemos o desafio Bird, o desafio nas alturas. Mas nós vamos melhorar agora, vamos melhorar o nosso fluxo de trabalho com essa interface.

Nós vamos ver o componente “Canvas Scaler”, que é quem mexe no tamanho dos objetos no Canvas. Vamos ver que aquelas âncoras que estávamos usando para redimensionarmos os objetos conforme a sua tela aumentava ou diminuía, servem para aquilo, mas não só para aquilo. Elas nos ajudam muito mais a posicionarmos os objetos e é tudo isso que nós vamos ver nesse curso.

Nós vamos ver ainda alguns detalhes durante o curso, mas no geral é isso o que nós vamos ver. Então, eu espero você lá. Até a próxima!

Interface Responsiva - Entendendo as âncoras

Tudo bem? Então nós vamos continuar no fugaespacial. Aquele projeto que estávamos começando, fazendo o jogo dentro da Unity para celular. Estou com o meu celular conectado via USB de novo no computador, para nós testarmos com o Unity remote. Nós temos a nossa cena, acena de ranking que nós tínhamos acabado de fazer. Quando eu clico nela, ela lê as nossas informações daquele arquivo “.json”.

Só que você pode ver que se nós testamos o nosso jogo em Full Screen, ou se você testar no seu celular e o seu celular tem uma proporção diferente do meu celular, nós teríamos a interface fora do lugar. Mas nós já tínhamos visto como podemos arrumar esse tipo de erro. Porque a interface aqui não está responsiva, ela não está redimensionando os elementos dela de acordo com o tamanho da nossa tela. Então, como nós resolvíamos isso?

Quando fizemos o desafio nas alturas, aquele curso de nós refizemos o jogo de Flappy Bird, nós tínhamos visto que para deixar a nossa interface responsiva, as âncoras dessa interface precisam estar em relação à quina do elemento. Então, por exemplo: esse elemento "PainelListaDeColocados" está com as âncoras aqui fora perto do Canvas. Vamos aumentar um pouco o tamanho da tela e nós poderemos ver que a âncora dele está aqui.

Eu consigo mexer, mas ela está limitada pelo Canvas e eu não quero isso, eu quero que ela fique nessa borda. Vamos pegar e reposicionar as âncoras desse elemento, como nós já tínhamos feito no desafio das alturas. Outro elemento que está fora é o "InputField", que é onde nós colocamos o nome. Onde a pessoa que jogou coloca o nome para nós sabermos quem jogou, quem fez aquela pontuação. Então eu posso pegar. A âncora desse elemento está no centro da tela.

Eu posso pegar e colocá-la para fora das bordas do "InputField". Dessa maneira, na hora que eu testo o jogo, nós vamos ver que eu tenho a interface sendo redimensionada. Ela estava ali no canto porque nós ainda não tínhamos renderizado de novo essa cena de jogo. Então se eu der um play agora e for em Full Screen, a nossa interface estará correta. Ela está certa, está redimensionando, mas será que ela está realmente certa? Será que essa é a melhor maneira de fazermos isso?

Porque eu estou usando uma resolução, uma proporção de tela de 16:9, que é o Full HD. Mas os nossos celulares podem ter várias resoluções. Eu posso já ter o 16:10, o 3:2, o 4:3 e o 5:4. Você vai vendo que nós vamos diminuindo a nossa resolução. Os nossos elementos estão acompanhando essa resolução, então a nossa tela está realmente responsiva. No nosso botão “JOGAR NOVAMENTE”, talvez tenhamos que diminuir um pouco esse texto, mas ele está responsivo.

Só que e o fluxo de trabalho? Será que o fluxo de trabalho quando nós temos essas âncoras assim, é bom? Vamos voltar para a resolução de 16:9, voltar para a cena de edição e vamos pegar o "PainelNovaEntrada". Onde nós temos nova pontuação, nome e o nosso texto que vai ter a pontuação. Se eu quiser diminuir esse painel, o que vai acontecer? Eu posso clicar aqui e diminuir o painel.

Repare que conforme eu vou diminuindo esse painel, porque eu quero realinhar o meu layout, todo o texto que está dentro dele vai diminuindo junto, porque nós estamos falando para ele crescer proporcionalmente ao tamanho desse pai. É isso que as âncoras, quando elas estão nessa borda do elemento, nos avisam. Elas falam para o elemento: "cresça, aumente ou diminua de tamanho, de acordo com o tamanho do seu pai".

No caso desses três elementos que estão dentro do "PainelNovaEntrada", o pai deles é esse "PainelNovaEntrada". O pai desse "PainelNovaEntrada" é o próprio Canvas. Mas quando eu estou diminuindo o nosso texto assim, no nosso painel, eu posso não querer que o texto dentro dele diminua de verdade. Eu só posso querer realinhar, diminuir esse painel, mas não fazer com que o texto fique menor.

Porque se eu estou trabalhando em um Mobile, o texto muito pequeno vai ficar ilegível, então eu não quero que esse texto diminua. Mas se eu não quero que esse texto diminua e ele vai diminuir porque ele está crescendo e diminuindo de acordo com a proporção da minha tela, como eu posso fazer para ele não crescer e não diminuir? As âncoras têm uma função diferente da função que estamos usando aqui. As âncoras servem para redimensionar os nossos elementos, servem para posicionarmos eles.

Elas são âncoras, elas mantêm esse elemento fixo em algum ponto. Se nós pegarmos, por exemplo, o “JOGAR NOVAMENTE”, esse botão tem que ficar fixo em algum ponto da tela. Por quê? Conforme o meu Canvas aumenta e diminui conforme temos as resoluções, o “aspect ratio” que nós falamos, conforme aumentamos e diminuímos esse layout, esse tamanho de abertura da câmera, eu quero que esse botão continue perto desse canto aqui, dessa lateral inferior direita.

Só que para fazermos isso, nós não podemos. Nós temos que falar para esse elemento: "você tem um ponto fixo, que é esse ponto aqui" e é aí que a âncora entra. Para nós fazermos isso, eu posso vir aqui e colocar a âncora dele aqui nesse ponto. Então conforme esse ponto for se movendo, as âncoras vão puxar esse elemento e jogar novamente para manter essa distância que nós temos.

Então se eu vier no game agora, na cena de game e mudar a resolução, você pode ver que conforme a câmera mexe essa distância para lateral e para baixo desse botão, não vão ser mudadas. Então ela vai manter esse botão sempre dentro da cena. A âncora serve para isso, para posicionar os nossos elementos.

Voltando naquele fluxo de trabalho que nós queríamos - se nós quisermos aumentar ou diminuir esse painel e não fazermos com que os filhos deles aumentem ou diminuam de tamanho, eu tenho que pegar as âncoras desses filhos e posicionar elas de acordo com onde eu quero que elas sejam fixas. Por exemplo: esse nome está na parte de baixo do meu painel. Então se o meu painel aumentar ou diminuir, esse nome tem que continuar com essa margem para baixo. Vou pegar e selecionar a âncora no pé do meu painel.

No painel, se eu aumentar ou diminuir agora, o nome acompanha esse crescimento ou esse encolhimento. A mesma coisa para a nossa nova pontuação. Posso vir aqui e selecionar a âncora para ficar ali em cima. Então conforme eu vou aumentar ou diminuir esse "PainelNovaEntrada", ele vai seguir. Agora nós temos os nossos elementos sendo posicionados de acordo com a âncora, mas eles não vão ser redimensionados. Para redimensionarmos nós temos outro elemento.

Esse elemento nós vamos ver no próximo vídeo. Nós vamos ver mais para frente. Por enquanto eu vou posicionar todas as âncoras desses elementos dentro da interface. Então o nosso "PainelNovaEntrada", por exemplo, não tem essas âncoras. Porque o que eu quero fazer é com que ele mantenha uma linha perto do centro, quero que ele tenha uma margem perto do centro da minha tela e uma margem do topo.

Então eu vou pegar a âncora e vou selecionar ela para ficar no topo e no centro da minha câmera. No Canvas ele vai tentar manter essa margem, essa altura, essa distância do Canvas e vai tentar manter essa margem do centro. A mesma coisa para o "PainelDeColocados". Eu quero que ele fique aqui no centro. Inclusive, nós fazendo isso, podemos ver que estávamos super desalinhados. Se o meu painel estiver alinhado, ele tem que estar aqui.

Se eu quero dar uma margem para ele, eu posso aumentar um pouco aqui. A mesma coisa para o nosso "PainelNovaEntrada". Ele tem a margem, tem o centro o centro da tela agora bem definido. Então nós conseguimos alinhar muito mais fácil a nossa interface gráfica. Vamos alinhar elas também na altura, para mantermos a mesma margem. Vamos pegar o botão. Ele já está aqui. Eu posso aumentar ele um pouco para alinhar com esse painel. Vamos diminuir um pouco a margem inferior dele.

Então nós podemos aumentar esse painel aqui também. Vamos aumentar o "NovaEntrada" e esse "InputField" nós podemos jogar a âncora dele para o canto inferior esquerdo. Então com isso, nós também conseguimos alinhar ele com o nosso botão, deixá-lo com a mesma altura e deixar até um pouco mais perto. Nós temos maneiras de trabalhar com esse posicionamento dos nossos elementos. Agora temos todos os elementos já posicionados.

Conforme nós aumentamos ou diminuímos a nossa tela, esses elementos andam conforme o Canvas anda. Então o nosso painel está posicionado aqui no centro e o "InputField" está de um lado inferior e o botão está do outro lado inferior. Só que eles não estão redimensionando. Para redimensionarmos, nós vamos ter que usar outro elemento que vamos ver daqui a pouco.

Interface Responsiva - Escalonando o canvas

Nós tínhamos visto que as nossas âncoras servem para posicionar os nossos elementos. Então nós mudamos todas as âncoras dos nossos elementos na cena e fizemos com que elas posicionassem eles dentro da nossa interface gráfica, para nós conseguirmos ver e conseguirmos alinhar de uma maneira muito melhor e muito mais clara. Um fluxo de trabalho muito mais fácil quando estamos trabalhando com interface gráfica. Mas nós criamos um problema.

Quando eu vou e diminuo o tamanho da minha tela, todos os elementos estão tentando manter a posição deles em relação às âncoras deles. Então esse painel “NovaPontuação” e “ListaDeColocados” estão tentando manter uma distância em relação a esse centro da nossa tela. Eles começam a sair da tela. A tela está diminuindo e em compensação, o “InputField” está tentando manter uma distância em relação a esse canto inferior esquerdo.

Então conforme nós vamos diminuindo, ele também vai subindo e vai indo para o lado porque ele está tentando manter essa margem inferior e lateral. A mesma coisa com o botão “JOGAR NOVAMENTE”. Ele está tentando manter uma distância em relação a margem direita e a margem inferior. Então nós podemos ver que eles estão se juntando no meio e nós não queremos ter isso, nós não queremos ter esse comportamento.

Nós queremos que independentemente do tamanho da nossa tela, esses elementos fiquem no lugar deles, que é o que a âncora faz, mas que eles fiquem com o tamanho proporcional, que não tenhamos esses elementos entrando um na frente do outro. Por quê? Se a minha tela está menor, esses elementos também têm que estar menores. Nós temos que escalonar eles, temos que diminuir o tamanho deles. Como fazemos isso?

Para fazermos isso, o componente Canvas que foi criado quando nós estávamos criando uma interface gráfica, dentro da Unity toda interface gráfica depende de um Canvas e ele tem o componente dele, que é o “Canvas Scaler”, ou seja, o escalanador de Canvas. É esse objeto, esse componente do Canvas é que vai fazer com que nós escalonamos e mudamos o tamanho dos objetos de acordo com o tamanho da tela. Mas se ele faz isso, por que ele não está fazendo isso agora?

Por padrão ele não faz. Porque por padrão, o modo de escala dele, o “UI Scale Mode”, modo de escala da interface do usuário está como “Constant Pixel Size”, ou seja, ele é um tamanho constante de pixels. E se ele é um tamanho constante de pixels, ele é um tamanho constante. Ele não vai escalonar, não vai diminuir ou aumentar os nossos elementos.

E para nós mudarmos isso, eu posso vir nesse “check box”, nessa aba de seleção e eu vou mudar para “Scale With Screen Size”, ou seja, vou escalonar os meus elementos de acordo com o tamanho da tela. Fazendo isso eu vou falar: “Unity, eu estou criando uma interface gráfica para uma resolução padrão, que é essa resolução de referência que ele fala aqui, “Reference Resolution”, que por enquanto está com 1920x1080”. Eu estou criando uma interface para essa resolução.

Se você achar algum elemento ou se você estiver em uma tela que for menor do que isso, você vai mudar o tamanho dos objetos de acordo com o quão menor a sua tela for. Podemos ver que como nós mudamos esse “UI Scale Mode” e nós temos agora uma resolução muito alta, podemos ver que os nossos elementos são pequenos. Por quê? Por padrão, nós estávamos fazendo com uma outra resolução.

Ele precisou escalonar de novo os meus elementos, mudar eles e posicioná-los de novo para essa resolução de referência. Então eu vou na cena e pegar o “PainelNovaEntrada” e nós vamos escaloná-lo. Vou pegar o “PainelListaDeColocados” e vamos escaloná-lo. A mesma coisa com o botão “JogarNovamente” e com o “InputField”. Então vamos fazer tudo isso. Vamos deixar uma margem boa aqui, uma margem boa para baixo. Vamos diminuir um pouco esse botão, vamos alinhá-lo aqui também.

E agora nós podemos ver que temos o layout geral no tamanho que queremos. Nós podemos ainda aumentar o tamanho dos textos. Então o texto “NovaPontuação” vai ser maior. Eu quero que ele pegue mais tamanho da pontuação. A pontuação pode ficar um pouco maior também e o nome também vamos aumentá-lo porque nós estamos montando a interface gráfica para aquela resolução padrão que nós definimos no “CanvasScaler”. Então, 1920x1080.

E nós temos a nossa interface como ela estava antes. Vamos salvar. Se eu der um play, nós vamos ver que os nossos elementos estão em um tamanho muito melhor. Nós já não precisamos arrumar. Nós ainda precisamos arrumar esse “Prefab”, o que nós já vamos fazer daqui a pouco. Mas se eu estou falando para a Unity que eu estou usando uma resolução de referência, como ela sabe se vai ter que diminuir muito ou pouco a nossa resolução? Porque a tela tem uma largura e uma altura.

E ela vai ter que usar largura e altura para ver quão maior é essa altura e quanto maior é a largura. Como ela faz esse cálculo de quão menor é a tela que estamos usando para quando o jogo está rodando? Para isso, ela tem esse “Match”. Essa propriedade “Match” fala que se eu tenho que usar a largura “Width” ou “Height”, que é a altura.

Se eu quero que a Unity use a largura da tela como uma referência para ver se a largura for menor do que 1920, então eu vou diminuir. Se ela for maior, eu vou aumentar. Se eu quero ver só a largura, eu pego esse Slide e coloco na largura. Mas se eu quero ver de acordo com a altura da minha tela, eu pego esse Slide e coloco na altura e deixo lá como um. Mando ele inteiro para a direita. Mas se eu quero que ele veja tanto a largura, quanto a altura, eu posso colocar ele aqui no “0.5”.

Eu posso colocar ele aqui no meio. Então ele vai ver tanto a largura, quanto a altura da minha tela e assim ele vai fazer as contas da Unity e vai ver quanto ele precisa aumentar ou diminuir no nosso jogo. Mas como nós escolhemos se eu quero ver só a largura ou só a altura, ou se eu quero ver os dois? Vamos pensar: o nosso jogo é para celular e nós estamos pensando nesse jogo sempre para jogar deitado. Eu sempre estou com o meu celular na horizontal.

Então se eu estou mexendo na horizontal com o meu celular, a altura não importa tanto porque o meu maior eixo é a largura. Eu vou pegar e falar: “O meu jogo só se importa com a largura da sua tela. Quanto maior a largura da sua tela, mais eu vou aumentar de acordo com a sua resolução de referência A altura tanto faz”. Mas se eu estou fazendo um jogo para ser jogado em pé, provavelmente eu vou querer mexer. Vou querer que esse “Cancas Scaler” olhe a altura da minha tela. Por quê? A altura é o maior eixo.

Se eu estou fazendo um jogo que eu vou tanto deixar ele na horizontal, quanto vertical, ou tanto jogar com o celular deitando, quanto em pé, então eu posso colocar ele no meio. No nosso caso, eu estou pensando no nosso jogo para jogar sempre deitado. Então eu vou pedir para ele verificar só a largura. Nós podemos ver que agora, conforme eu aumento ou diminuo a tela, a nossa interface gráfica responde de acordo.

Se eu mudar a resolução da tela, mudar o “aspect ratio”, nós podemos ver que ele também muda, também responde. Só que ele mantém algumas margens que pode não ser o ideal. Então você vê que ele está mais junto na borda. Para não termos isso, nós podemos tentar deixar a borda um pouco maior nessa interface, deixar os elementos mais juntos. Nós podemos pegar esses elementos, o “PainelNovaEntrada” e o “PainelListaDeColocados” e abaixá-los um pouco.

Vou deixar uma margem maior no pé, uma margem maior superior. Então se nós pegarmos uma resolução menor, nós ainda vamos ter problemas. Mas todos os nossos elementos estão dentro da tela, nós conseguimos jogar com eles assim e ele não vai ser o ideal, porque temos que ter uma resolução de referência, mas tudo bem. Nós não temos nada fora da tela, não tem uma coisa em cima da outra, o que é muito pior. Então nós agora temos a interface responsiva. Vamos só arrumar o “Prefab”.

Vamos pegar um “Prefab” da interface gráfica. Vamos pegar o “Prefab” de “UI” e jogar ele dentro do “PainelListaDeColocados” e vamos redimensionar o tamanho dele. Você pode ver que inclusive nas âncoras dele nós não tínhamos mexido. Ele está com a âncora aqui em cima ainda. Então eu vou pegar o “TextoColoccao”, que é o do meio mesmo, o texto do nome. Aliás, o “TextoColocacao” não é o do meio, ele é o da ponta. Então eu quero que ele fique com a âncora, na ponta.

Mas espere, eu estou com a âncora na ponta, mas o meu elemento está aqui no meio, pequeno. Eu queria mover o meu elemento junto quando eu devolvo a âncora. Como eu posso fazer isso? Se eu quero mover o meu elemento junto com a âncora dele, eu posso selecionar a posição da âncora que eu quero segurando a tecla “Alt”. Se eu seguro o “Alt”, você pode ver que a minha interface mudou e conforme eu vou clicando o texto anda junto com essa interface.

Se eu aumentar um pouco mais o texto, nós vamos conseguir ver. Então vamos pegar o “TextoColocado” e vamos aumentá-lo um pouco e aumentar um pouco aqui também. Nós podemos ver que conforme eu vou andando com a âncora – deixe-me só tirar um pouco do zoom - ele vai mandando junto. Ele vai sempre mantendo essa âncora junto com ele. Então é o jeito mais fácil de posicionar. A mesma coisa eu vou fazer para o texto da pontuação.

Eu vou jogá-lo junto com a âncora para o final e nós vamos aumentar o tamanho dele. Vamos pegar o tamanho dele e aumentar alinhando sempre com os outros, para deixarmos no mesmo tamanho. Vamos pegar o nome. O nome vai ficar no meio mesmo, então eu vou deixar a âncora dele no meio e vou aumentar. O nosso nome agora pode ser maior. Agora nós temos a nossa interface já responsiva. Então com um elemento só, o texto está pequeno. Posso vir e selecionar os três textos.

Vamos selecionar todos eles e vamos aumentar o “Max Size” do “Best Fit”. Então vamos aumentá-lo para 102 e vamos salvar. Vamos aplicar essas alterações no “Prefab”. Vou dar um “Apply”. Salvando dessa maneira, o “Prefab” já foi alterado, então eu vou tirar o “Colocado”. Se eu der um play agora nós vamos ver a nossa interface certa. Então agora, os nossos textos no lugar dos nomes estão grandes e estão respondendo as âncoras.

Então, eles estão respondendo de maneira certa e estão diminuindo. Agora nós temos a nossa interface pronta para ser usada em qualquer resolução ou em qualquer celular, já que a maioria deles usa uma resolução muito próxima de 16:9 ou 16:10. Então nós não precisamos nos preocupar tanto com as resoluções menores. Nós já temos agora a nossa interface certa.

Sobre o curso Unity Mobile parte 2: interface responsiva e desempenho

O curso Unity Mobile parte 2: interface responsiva e desempenho possui 162 minutos de vídeos, em um total de 41 atividades. Gostou? Conheça nossos outros cursos de Jogos em Mobile, ou leia nossos artigos de Mobile.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Jogos acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri powered by ChatGPT

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas