Administrador de ventanas de Jetpack para Unity

El Administrador de ventanas de Jetpack está disponible como un paquete que se puede incluir en el proyecto de Unity. Personalice el sistema de compilación de Gradle e implemente una clase de actividad base personalizada y agregue una clase auxiliar de C# que llame a la API nativa de Java.

API plegable y de doble pantalla

El código WindowManagerHelper.cs proporciona estos métodos que exponen información proporcionada por el Administrador de ventanas de Jetpack:

  • WindowManagerHelper.GetCurrentWindowMetricsBounds. Los límites (izquierdo, superior, ancho, alto) de todo el área que ocupa la aplicación.
  • WindowManagerHelper.IsSeparating. Si la característica de plegado separa las áreas de pantalla. Esto siempre TRUE está en Surface Duo. Está TRUE en otros dispositivos plegables solo cuando se doblan, pero FALSE cuando están planos.
  • WindowManagerHelper.Orientation. Orientación de la característica de plegado, si hay una. HORIZONTAL o VERTICAL.
  • WindowManagerHelper.OcclusionType. Si la característica de plegado oculta el contenido. FULL o NONE.
  • WindowManagerHelper.State. Estado del plegado. FLAT o HALF_OPEN.
  • WindowManagerHelper.Bounds. Los límites (izquierda, superior, ancho, alto) de la característica de plegado, si hay alguno.

Esta es una captura de pantalla del ejemplo de demostración de API que muestra la información del dispositivo del paquete De Windows Manager de Jetpack:

Screenshot shows Jetpack Window Manager properties showing in the Unity sample app.

Implementación del Administrador de ventanas de Jetpack en Unity

Siga estos pasos para personalizar la configuración de compilación de aplicaciones de Android e implementar El Administrador de ventanas de Jetpack. También puede revisar el código de este ejemplo.

  1. En Unity, vaya a Editar>Project Configuración...>Jugador>(Android)>Publicar Configuración y seleccionar estas opciones de compilación:

    Screenshot shows the Publishing Settings Build options list.

    En este paso se colocan nuevos elementos en los activos, complementos o Android del proyecto, que se personalizan para admitir el paquete del Administrador de ventanas.

  2. Actualice mainTemplate.gradle para incluir El Administrador de ventanas de Jetpack en el proyecto agregando las siguientes dependencias:

    dependencies {
        implementation "androidx.window:window:1.0.0"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
        implementation 'androidx.appcompat:appcompat:1.2.0'
        implementation 'androidx.core:core-ktx:1.3.2'
    }
    
  3. Actualice el archivo gradleTemplate.properties agregando la siguiente línea:

    android.useAndroidX = true    
    
  4. La aplicación necesita una actividad personalizada para implementar la funcionalidad del administrador de ventanas y exponer información a C#. Cree un archivo FoldablePlayerActivity.java en la misma carpeta Assets/Plugins/Android y actualice AndroidManifest.xml para hacer referencia a la nueva clase:

    <activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
    
  5. Agregue la clase completa de FoldablePlayerActivity.java en GitHub.

  6. Copie la clase auxiliar WindowManagerHelper.cs de GitHub en el proyecto. La carpeta es Assets/SurfaceDuo/Plugins en el ejemplo.

Los activos/complementos/Android ahora contienen estos elementos, personalizados en los pasos anteriores:

Screenshot shows Customized Android project configuration files in Unity.

El archivo WindowManagerHelper.cs se encuentra en la carpeta Assets/SurfaceDuo/Plugins del ejemplo, pero esta clase auxiliar se puede ubicar en cualquier parte del código del juego.

Una vez implementados los cambios de diseño en función de la presencia de una característica de plegado, puedes probar tu juego en Surface Duo y otros dispositivos plegables que admitan el Administrador de ventanas jetpack.

Pasos siguientes

Revise estos ejemplos.