Como uso os ícones adaptativos do Android no Unity?

12

A partir da API 26, o Android usa algo chamado ícones adaptáveis.

Ao segmentar a API 25 e inferior, o ícone do meu aplicativo fica bem:

insira a descrição da imagem aqui

Mas ao segmentar a API 26+, ela aparece em um círculo branco da seguinte forma:

insira a descrição da imagem aqui

  • Como posso segmentar a API 26+ enquanto utiliza os ícones adaptativos do Android?
  • E se eu quiser segmentar a API 26+, mas não usar os ícones adaptativos do Android?
Evorlor
fonte
Diga, notei que você adicionou uma recompensa a essa pergunta. Há alguma informação adicional que você espera que outra resposta possa adicionar, além da explicação abrangente abaixo?
DMGregory
@DMGregory Nope. Apenas tentando aumentar a exposição. Eu nunca encontrei uma explicação decente sobre a implementação de ícones adaptativos do Unity, tentando economizar tempo para os outros. Dito isto, se você ou qualquer outra pessoa tiver informações adicionais, isso será muito apreciado.
Evorlor 31/07

Respostas:

22

Como posso segmentar a API 26+ enquanto utiliza os ícones adaptativos do Android?

Nas Configurações do player no Android no Unity 2018 ou superior, há um ponto na seção Ícone para definir seus ícones. Você pode definir ícones herdados, redondos e adaptáveis. Os ícones Legado e Rodada são para API 25 e inferior. Basta adicionar o ícone desejado, alfa e tudo, e pronto. Os ícones adaptáveis, para API 26+, são um pouco mais complicados.

insira a descrição da imagem aqui

Ícones adaptáveis ​​consistem em duas partes. O plano de fundo e o primeiro plano .

fundo

O plano de fundo é onde você coloca o plano de fundo para o seu ícone. Esta imagem não deve ter nenhum alfa. Deve ser contínuo, pois você não tem controle sobre quais partes do plano de fundo são mostradas.

O Android determina o corte e a tradução da imagem de fundo. No exemplo abaixo, o plano de fundo é uma imagem azul com uma grade branca. Observe como o plano de fundo parece bom, apesar de o quadrado ser cortado em um círculo e o plano de fundo ser movido.

insira a descrição da imagem aqui

Primeiro plano

O primeiro plano será o seu ícone real. Alfa é necessária para esta imagem. O exterior 1/6 da sua imagem pode estar oculto atrás do corte. Isso significa que a imagem deve ser reduzida para 66,67% ou o tamanho original, enquanto a tela permanece no tamanho original. No exemplo abaixo, a imagem tem 432x432 pixels; no entanto, as partes esquerda, direita, superior e inferior da imagem têm 72 pixels de transparência.

insira a descrição da imagem aqui

O resultado final da escala de 66,67% da imagem preencherá o sprite perfeitamente dentro do círculo, enquanto o fundo aparece atrás de pixels transparentes.

Em vários dispositivos, o ícone pode ser deslocado para fora da área cortada, pois não há buffer. Por exemplo, no ícone azul acima, o primeiro plano é de aproximadamente 35% do tamanho original. Se tivesse 66,67% do tamanho original, o rosto do Android ficaria fora de vista.

Exemplo

Portanto, se esse foi o nosso plano de fundo e o primeiro plano, de modo que o conteúdo do nosso primeiro plano tenha 2/3 do tamanho do plano de fundo:

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Então esta é a versão não cortada do nosso ícone:

insira a descrição da imagem aqui

Mas o que realmente conseguimos ver no dispositivo (supondo que o Android não esteja fazendo nada "adaptável" no momento) é o seguinte:

insira a descrição da imagem aqui


E se eu quiser segmentar a API 26+, mas não usar os ícones adaptativos do Android?

Você não pode.


Eu ainda não entendo.

Talvez o Android ou o Unity possam explicar melhor.

Evorlor
fonte