Jetpack Window Manager pour Unity bêta

Important

Les fonctionnalités et l’aide décrites dans cet article sont en préversion publique et peuvent faire l’objet de modifications importantes avant leur lancement en disponibilité générale. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.

Le gestionnaire de fenêtres Jetpack est disponible sous la forme d’un package qui peut être inclus dans votre projet Unity en personnalisant le système de génération gradle et en implémentant une classe d’activité de base personnalisée, puis en ajoutant une classe d’assistance C# qui appelle l’API Java native.

API repliable et double écran

Le code WindowManagerHelper. cs fournit les méthodes qui exposent les informations fournies par le gestionnaire de fenêtres Jetpack :

  • WindowManagerHelper. GetCurrentWindowMetricsBounds : limites (gauche, haut, largeur, hauteur) de la zone entière occupée par l’application.
  • WindowManagerHelper. IsSeparating : indique si la fonctionnalité de pliage sépare les zones d’écran. Cette valeur est toujours TRUE sur le duo de surface et est vraie sur d’autres appareils pliables uniquement lorsqu’ils sont pliés, mais faux lorsqu’ils sont plats.
  • WindowManagerHelper. orientation : orientation de la fonctionnalité de pliage, s’il y en a une (horizontale ou verticale).
  • WindowManagerHelper. OcclusionType : indique si la fonctionnalité de pliage masque le contenu (Full ou None).
  • WindowManagerHelper. State : état du pli (plat ou HALF_OPEN).
  • WindowManagerHelper. Bounds : limites (gauche, haut, largeur, hauteur) de la fonctionnalité de pliage, le cas échéant.

Voici une capture d’écran de l' exemple de démonstration de l’API montrant les informations de l’appareil à partir du package du gestionnaire de fenêtrage :

Propriétés du gestionnaire de fenêtres affichées dans l’exemple d’application Unity

Implémenter le gestionnaire de fenêtres Jetpack dans Unity

Procédez comme suit pour personnaliser votre configuration de build d’application Android et implémenter le gestionnaire de fenêtres Jetpack. Vous pouvez également examiner le code dans cet exemple.

  1. dans unity, accédez à modifier Project Paramètres... >>> Paramètres de publication Player (Android) et vérifiez les options de > suivantes :

    publication Paramètres liste des options de Build

    Cela placera les nouveaux éléments dans les ressources/plug-ins/Android du projet qui seront ensuite personnalisés pour prendre en charge le package du gestionnaire de fenêtrage.

  2. Mettez à jour MainTemplate. gradle pour inclure le gestionnaire de fenêtres Jetpack dans le projet, en ajoutant ce qui suit :

    dependencies {
        implementation "androidx.window:window:1.0.0-beta02"
        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. Mettez à jour le fichier gradleTemplate. Properties en ajoutant la ligne suivante :

    android.useAndroidX = true    
    
  4. L’application a besoin d’une activité personnalisée pour implémenter la fonctionnalité du gestionnaire de fenêtres et exposer des informations à C#. Pour ce faire, créez un fichier FoldablePlayerActivity. Java dans le même dossier ressources/plug-ins/Android, puis mettez à jour AndroidManifest.xml pour référencer la nouvelle classe :

    <activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
    
  5. Ajoutez la classe Complete à partir de FoldablePlayerActivity. Java sur GitHub.

  6. copiez la classe d’assistance WindowManagerHelper. cs de GitHub dans le dossier project (ressources/SurfaceDuo/Plugins de l’exemple).

Les ressources/plug-ins/Android contiennent maintenant ces éléments, personnalisés dans les étapes ci-dessus :

Fichiers de configuration de projet Android personnalisés dans Unity

WindowManagerHelper. cs se trouve dans le dossier Assets/SurfaceDuo/plugins de l’exemple, mais cette classe d’assistance peut se trouver n’importe où dans votre code de jeu.

Une fois que vous avez implémenté les modifications de disposition en fonction de la présence d’une fonctionnalité de repli, vous pouvez tester votre jeu sur surface Duo et d’autres appareils pliables qui prennent en charge le gestionnaire de fenêtres Jetpack.