Jetpack Window Manager pour Unity
Jetpack Window Manager est disponible en tant que package pouvant être inclus dans votre projet Unity. Personnalisez le système de build gradle et implémentez une classe d’activité de base personnalisée, puis ajoutez une classe d’assistance C# qui appelle l’API Java native.
API pliable et double écran
Le code WindowManagerHelper.cs fournit ces méthodes qui exposent les informations fournies par le Gestionnaire de fenêtres Jetpack :
WindowManagerHelper.GetCurrentWindowMetricsBounds
. Les limites (gauche, supérieure, 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. Il s’agit toujoursTRUE
du Surface Duo. C’estTRUE
sur d’autres appareils pliables seulement quand ils sont pliés, maisFALSE
quand ils sont plats.WindowManagerHelper.Orientation
. Orientation de la fonctionnalité de pliage, s’il en existe un.HORIZONTAL
ouVERTICAL
.WindowManagerHelper.OcclusionType
. Indique si la fonctionnalité de pliage masque le contenu.FULL
ouNONE
.WindowManagerHelper.State
. État du pliage.FLAT
ouHALF_OPEN
.WindowManagerHelper.Bounds
. Limites (gauche, supérieure, largeur, hauteur) de la fonctionnalité de pliage, s’il en existe un.
Voici une capture d’écran de l’exemple de démonstration d’API montrant les informations de l’appareil à partir du package Jetpack Window Manager :
Implémenter Jetpack Window Manager dans Unity
Suivez ces étapes pour personnaliser votre configuration de build d’application Android et implémenter Jetpack Window Manager. Vous pouvez également examiner le code dans cet exemple.
Dans Unity, accédez à Modifier>Project Paramètres...>Joueur>(Android)>Publication Paramètres et sélectionnez les options de build suivantes :
Cette étape place de nouveaux éléments dans les ressources/plug-ins/Android du projet, qui sont ensuite personnalisés pour prendre en charge le package Du Gestionnaire de fenêtres.
Mettez à jour le mainTemplate.gradle pour inclure Jetpack Window Manager dans le projet, en ajoutant les dépendances suivantes :
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' }
Mettez à jour le fichier gradleTemplate.properties en ajoutant la ligne suivante :
android.useAndroidX = true
L’application a besoin d’une activité personnalisée pour implémenter la fonctionnalité du gestionnaire de fenêtres et exposer des informations à C#. Créez un fichier FoldablePlayerActivity.java dans le même dossier Assets/Plugins/Android, puis mettez à jour AndroidManifest.xml pour référencer la nouvelle classe :
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
Ajoutez la classe complète à partir de FoldablePlayerActivity.java sur GitHub.
Copiez la classe d’assistance WindowManagerHelper.cs de GitHub dans le projet. Le dossier est Assets/SurfaceDuo/Plugins dans l’exemple.
Les ressources/plug-ins/Android contiennent désormais ces éléments, personnalisés dans les étapes ci-dessus :
Le fichier 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é des modifications de disposition en fonction de la présence d’une fonctionnalité de pliage, vous pouvez tester votre jeu sur Surface Duo et d’autres appareils pliables qui prennent en charge Jetpack Window Manager.
Étapes suivantes
Passez en revue ces exemples.