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.
Para obtener más información, consulta Cómo admitir el cambio de tamaño en pantallas grandes.
Modo multiventana
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.
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.
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.
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.
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.
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".
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.