Haz que tu juego de Unity sea excelente en todos los factores de forma

En el mercado competitivo de videojuegos actuales, es más importante que nunca llegar a un público lo más amplio posible. Cuando desarrollas juegos para diferentes factores de forma, como teléfonos, tablets, dispositivos plegables y computadoras de escritorio, puedes acceder a un grupo más grande de jugadores potenciales y aumentar tus posibilidades de éxito.

Compatibilidad con el cambio de tamaño de la pantalla

Para admitir diferentes factores de forma, se debe poder cambiar el tamaño de tu juego. La capacidad de cambio de tamaño permite que tu juego admita configuraciones de dispositivos, como orientación vertical y horizontal, el modo multiventana y los estados plegado y desplegado de los dispositivos plegables.

Si el juego no admite todas las configuraciones de tamaño y orientación de ventana, la plataforma lo envía en formato letterbox en modo de compatibilidad y, si es necesario, le solicita al jugador antes de cambiar a una configuración no compatible.

Figura 1: Diálogo de compatibilidad de configuración.

Para obtener más información, consulta Cómo admitir el cambio de tamaño en pantallas grandes.

Modo multiventana

Figura 2: Diferentes IUs en computadoras y dispositivos plegables en posición de mesa.

El modo multiventana permite que varias apps compartan la misma pantalla al mismo tiempo. Las apps pueden estar una al lado de la otra o una encima de la otra (modo de pantalla dividida), una app en una ventana pequeña que se superpone con otras apps (modo de pantalla en pantalla) o apps individuales en ventanas que se pueden mover y cambiar de tamaño (modo de formato libre).

Para evitar entrar en el modo de compatibilidad cuando el juego se ejecuta en el modo multiventana, declara que tu juego puede controlar el cambio de tamaño habilitando la opción Resizable Window en la configuración de compilación de Unity.

Figura 3: Configuración de resolución y presentación de Unity para Android

Cortes de pantalla

Un corte de pantalla es un área en algunos dispositivos que se extiende hasta la superficie de la pantalla. Los recortes permiten una experiencia de borde a borde al mismo tiempo que proporcionan espacio para sensores importantes en la parte frontal del dispositivo.

Figura 4: Corte de pantalla.

Para brindar una experiencia de borde a borde a tu juego, configúralo para que admita fotogramas seguros. Consulta la API de SafeArea de Unity para obtener el área segura de la pantalla en píxeles y ajusta la IU y UX del juego en consecuencia, especialmente para los elementos con los que los usuarios pueden interactuar.

Posiciones plegables

Los dispositivos plegables pueden estar en varios estados plegados, como FLAT (completamente abierto) o HALF_OPENED (en algún lugar entre completamente abierto y completamente cerrado). Cuando un dispositivo se encuentra en el estado HALF_OPENED, es posible tener dos posiciones, según la orientación del pliegue: posición de mesa (pliegue horizontal) y posición de libro (pliegue vertical). Usa la posición de mesa para aumentar la inmersión y participación de los jugadores.

Figura 5: Juego en posición de mesa con vista principal en la parte vertical de la pantalla y controles en la parte horizontal.

Para implementar la posición de mesa, extiende la actividad predeterminada de Unity y, luego, usa la biblioteca de diseño de WindowManager de Jetpack para que tu juego funcione en dispositivos plegables.

Proyecto de muestra de Unity

El proyecto de muestra de Unity se basa en el proyecto de demostración en 2D de Unity Lost Crypt. En el proyecto de ejemplo, se muestra cómo admitir el cambio de tamaño en pantallas grandes en Unity. La compatibilidad con pantallas grandes y dispositivos plegables requiere una serie de cambios en las opciones de compilación de Unity, así como consideraciones en el diseño de la cámara y los lienzos de la IU.

El proyecto de muestra está disponible para descargarlo ahora. El proyecto contiene cuatro escenas diferentes:

  • Original: Compatibilidad con la función básica que puede cambiar de tamaño.
  • Anchoring: Igual que la escena "Original", pero se adapta a varias relaciones de aspecto y evita el corte de la pantalla.
  • HingeAware: Igual que la escena "Fijación", pero admite la posición de mesa.
  • Menú principal: Escena inicial, permite la navegación a las otras escenas y admite por completo todas las orientaciones, el plegado, el desplegado y la posición de mesa del dispositivo.

Cuando compiles para Android, selecciona todas las escenas y establece la escena "Mainmenu" como escena inicial.

Figura 6: La escena "Mainmenu" te permite navegar a las otras escenas, en posición de mesa.

Comienza con la compatibilidad con ventanas que pueden cambiar de tamaño

Implementa la compatibilidad con varios tamaños de pantalla y relaciones de aspecto en tu aplicación de pantalla grande de Android para garantizar que tu juego o aplicación se muestre correctamente en diferentes dispositivos. Permite que tu juego cambie de tamaño y de relación de aspecto configurando la propiedad Resizable Window en la configuración de la compilación de Unity (consulta la sección "Multi-window mode"). Ajusta la relación de aspecto de la cámara y el lienzo para que se adapten mejor a diferentes pantallas. Consulta la configuración del proyecto en Build Settings y en el archivo Plugins/Android/AndroidManifest.xml. Disfruta de la función de pantalla completa que puede cambiar de tamaño en la escena "Original" del proyecto.

Figura 7: La escena "Original" admite la función de ventana que puede cambiar de tamaño.

Sumérgete en la pantalla completa y controla los cortes de pantalla

Permite que tu juego use la pantalla completa para que el juego sea envolvente y ofrezca una experiencia del usuario mejorada. Actualiza la configuración de la cámara y el anclaje de la IU del juego para que se ajusten automáticamente al tamaño de la pantalla. Esto permite que los elementos de la IU mantengan sus posiciones en relación con el tamaño de la pantalla.

La escena "Anchoring" usa la secuencia de comandos CameraAspectLock para responder a los cambios en la configuración del dispositivo por medio de una actividad extendida (consulta Assets/Plugins/Android/LargeScreenPlayableActivity.java). La API de safeArea de Unity se muestra en la secuencia de comandos SafeZoneAPI, que se vincula al objeto SafeZone dentro de la escena "Anchoring".

Pantalla completa de escena de juego en pantallas internas y externas de un dispositivo plegable.
Figura 8: Escena de “anclaje” con recorte de pantalla.

Cómo optimizar para dispositivos plegables

La última escena del proyecto de muestra de Unity, "HingeAware", contiene un objeto ConfigurationManager que responde a los diferentes estados de plegado del dispositivo de destino a través de las APIs de la biblioteca de Jetpack y una actividad extendida (consulta Assets/Plugins/Android/LargeScreenPlayableActivity.java). La escena usa la secuencia de comandos PanelOnFold para controlar la IU según el estado de plegado del dispositivo, por ejemplo, que muestra el panel inferior del controlador cuando el dispositivo está en posición de mesa y ajusta la cámara.

Figura 9: La escena "HingeAware" admite la posición de mesa.