Entonces, estoy portando un juego a Android por primera vez en Unity3D. Y me he encontrado con algunos problemas en el camino. Mi problema actual es que la resolución no parece ser correcta, corta los bordes de la pantalla y mis paradas de desplazamiento para desplazar la pantalla hacia la izquierda / derecha ya no están en el lugar correcto.
Después de investigar un poco, mucha gente dice que necesitas hacer que tu juego sea independiente de la resolución para poder ejecutarse en todos los Android / Iphone / Ipad. ¿Es esto cierto? Si es así, ¿cómo hago para hacer eso? Si no es así, ¿cómo puedo ayudar a solucionar la resolución para que cuando realice la transferencia a dispositivos móviles se vea bien?
EDITAR: todavía no tengo lo que necesito, las resoluciones aún no funcionan correctamente, incluso con el código y los trucos que se enumeran a continuación. Necesito alguna forma para que la resolución se ajuste según el dispositivo. Por alguna razón, cuando intento recuperar la resolución de un dispositivo usando el código de Mungoid, devuelve 0x0
fuente
Respuestas:
Un problema con el que se encontrará con Android es que cada dispositivo diferente tiene su propio tamaño de pantalla, resolución y densidad de píxeles. Si quieres que tu juego se vea idéntico en todos los dispositivos, te espera mucho trabajo y probablemente nunca estés satisfecho con los resultados. O el juego aparecerá extendido en pantallas panorámicas o comprimido en pantallas que no sean de pantalla ancha. Le sugiero que decida qué es realmente importante y deje que todo lo demás se deslice un poco.
Sin capturas de pantalla o conocimiento de cuál es su juego y cómo se ve, todos podemos especular soluciones, pero no tenemos una dirección específica para brindarle asesoramiento específico.
En Unity, puede acceder a las dimensiones de la pantalla actual con la clase Screen :
Screen.width
yScreen.height
(entre otras propiedades). Luego, puede cambiar la relación de aspecto de la cámara para cambiar lo que es visible en sus pantallas de diferentes tamaños según las dimensiones de la pantalla y sus expectativas personales de lo que debería ser visible.Si necesita asegurarse de que las pantallas de HUD se escalen correctamente, puede hacerlo cambiando la matriz de transformación de la GUI en función de las dimensiones de la pantalla en cada
OnGUI()
función. Lo he hecho antes haciendo este simple script y adjuntándolo a cualquier cosa que representara elementos de GUI que quería escalar:Luego, en las
OnGUI()
funciones reales , configuro la matriz de transformación de inmediato:fuente
Screen.width
y.height
en conjunto conCamera.fieldOfView
yCamera.aspect
para reproducir la misma vista en tamaños de pantalla arbitrarios. Solo requeriría algo de trigonometría para determinar específicamente cómo hacerlo.podría intentar algo como lo siguiente y aplicarlo. Supongo que un dispositivo móvil solo debería devolver una resolución.
También eche un vistazo aquí para obtener más información sobre Screen in unity http://unity3d.com/support/documentation/ScriptReference/Screen.html
fuente