Então, estou portando um jogo para o Android pela primeira vez no Unity3D. E eu me deparei com alguns problemas ao longo do caminho. Meu problema atual é que a resolução não parece correta, corta as bordas da tela e minha rolagem para a rolagem da tela para a esquerda / direita não está mais no lugar certo.
Depois de fazer um pouco de pesquisa, muitas pessoas dizem que você precisa tornar seu jogo Resolution Independent para poder rodar em todos os Androids / Iphone / Ipad. Isso é verdade? Se sim, como faço para fazer isso? Caso contrário, como posso ajudar a corrigir a resolução para que, quando for portada para dispositivos móveis, pareça correta?
Edição: Eu ainda não tenho o que eu preciso, as resoluções ainda não estão funcionando corretamente, mesmo com o código e os truques listados abaixo. Preciso de alguma maneira para a resolução ser ajustada com base no dispositivo. Por alguma razão, quando tento recuperar a resolução de um dispositivo usando o código da Mungoid, ele retorna 0x0
fonte
Respostas:
Um problema com o Android é que cada dispositivo diferente tem seu próprio tamanho de tela, resolução e densidade de pixels. Se você deseja que seu jogo pareça idêntico em todos os dispositivos, você trabalha muito e provavelmente nunca ficará satisfeito com os resultados. O jogo aparecerá esticado em telas widescreen ou compactado em telas não widescreen. Sugiro que você decida o que é realmente importante e deixe que qualquer outra coisa deslize um pouco.
Sem capturas de tela ou conhecimento sobre o que é o seu jogo e como ele é, todos podemos especular soluções, mas não temos instruções específicas para dar conselhos específicos.
No Unity, você pode acessar as dimensões da tela atual com a classe Screen :
Screen.width
eScreen.height
(entre outras propriedades). Você pode alterar a proporção da câmera para alterar o que é visível em suas telas de tamanhos diferentes com base nas dimensões da tela e na sua expectativa pessoal do que deve ser visível.Se você precisar garantir que todas as telas do HUD sejam dimensionadas adequadamente, altere a matriz de transformação da GUI com base nas dimensões da tela em todas as
OnGUI()
funções. Eu já fiz isso antes, criando esse script simples e anexando-o a qualquer coisa que renderizasse os elementos da GUI que eu queria que fossem dimensionados:Então, nas
OnGUI()
funções reais , defino a matriz de transformação imediatamente:fonte
Screen.width
e.height
em conjunto comCamera.fieldOfView
eCamera.aspect
para reproduzir a mesma exibição em tamanhos de tela arbitrários. Seria necessário apenas alguns trig para descobrir especificamente como fazê-lo.você pode tentar algo como o seguinte e aplicá-lo. Eu acho que um dispositivo móvel deve retornar apenas uma resolução.
Também dê uma olhada aqui para obter mais informações sobre a Tela em unidade http://unity3d.com/support/documentation/ScriptReference/Screen.html
fonte