Jetpack-Fenster-Manager für Unity
Jetpack Window Manager ist als Paket verfügbar, das in Ihrem Unity-Projekt enthalten sein kann. Passen Sie das Gradle-Buildsystem an und implementieren Sie eine benutzerdefinierte Basisaktivitätsklasse, und fügen Sie dann eine C#-Hilfsklasse hinzu, die die native Java-API aufruft.
Faltbare und duale Bildschirm-API
Der Code "WindowManagerHelper.cs " stellt diese Methoden bereit, die Informationen verfügbar machen, die vom Jetpack Window Manager bereitgestellt werden:
WindowManagerHelper.GetCurrentWindowMetricsBounds
. Die Grenzen (links, oben, breite, Höhe) des gesamten Bereichs, den die Anwendung besetzt.WindowManagerHelper.IsSeparating
. Ob das Faltfeature Bildschirmbereiche trennt. Dies ist immerTRUE
auf dem Surface Duo. Es istTRUE
nur auf einigen anderen faltbaren Geräten, wenn sie gefaltet werden, aberFALSE
wenn sie flach sind.WindowManagerHelper.Orientation
. Die Ausrichtung des Faltfeatures, wenn es einen gibt.HORIZONTAL
oderVERTICAL
.WindowManagerHelper.OcclusionType
. Ob das Faltfeature Inhalte verdeckt.FULL
oderNONE
.WindowManagerHelper.State
. Der Zustand der Faltung.FLAT
oderHALF_OPEN
.WindowManagerHelper.Bounds
. Die Grenzen (links, oben, breite, Höhe) des Faltfeatures, falls vorhanden.
Nachfolgend finden Sie einen Screenshot des Beispiels für die API-Demonstration mit Geräteinformationen aus dem Jetpack Window Manager-Paket:
Implementieren des Jetpack-Fenster-Managers in Unity
Führen Sie die folgenden Schritte aus, um Ihre Android App-Buildkonfiguration anzupassen und Jetpack Window Manager zu implementieren. Sie können den Code auch in diesem Beispiel überprüfen.
Wechseln Sie in Unity zu "Bearbeiten>Project Einstellungen...>Spieler>(Android)>Veröffentlichen Einstellungen und diese Buildoptionen auswählen:
Dieser Schritt platziert neue Elemente in den Ressourcen/Plugins/Android des Projekts, die dann angepasst werden, um das Window Manager-Paket zu unterstützen.
Aktualisieren Sie die mainTemplate.gradle , um jetpack Window Manager im Projekt einzuschließen, indem Sie die folgenden Abhängigkeiten hinzufügen:
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' }
Aktualisieren Sie die Datei gradleTemplate.properties , indem Sie die folgende Zeile hinzufügen:
android.useAndroidX = true
Die App benötigt eine benutzerdefinierte Aktivität, um die Funktionen des Fenster-Managers zu implementieren und Informationen an C# verfügbar zu machen. Erstellen Sie eine Datei FoldablePlayerActivity.java im gleichen Ordner "Assets/Plugins/Android", und aktualisieren Sie dann AndroidManifest.xml, um auf die neue Klasse zu verweisen:
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
Fügen Sie die vollständige Klasse von FoldablePlayerActivity.java auf GitHub hinzu.
Kopieren Sie die WindowManagerHelper.cs-Hilfsklasse aus GitHub in das Projekt. Der Ordner ist "Assets/SurfaceDuo/Plugins " im Beispiel.
Die Assets/Plugins/Android enthält jetzt diese Elemente, die in den oben aufgeführten Schritten angepasst wurden:
Die Datei "WindowManagerHelper.cs " befindet sich im Ordner "Assets/SurfaceDuo/Plugins " im Beispiel, aber diese Hilfsklasse kann sich überall im Spielcode befinden.
Nachdem Sie Layoutänderungen basierend auf der Anwesenheit eines Faltfeatures implementiert haben, können Sie Ihr Spiel auf Surface Duo und anderen faltbaren Geräten testen, die Jetpack Window Manager unterstützen.
Nächste Schritte
Überprüfen Sie diese Beispiele.