Zugreifen auf Dualbildschirminformationen auf Surface Duo von Unity

Hinweis

Neue Unity-Projekte sollten Jetpack Window Manager für faltbare Gerätefeatures verwenden. Es funktioniert für Surface Duo, Surface Duo 2 und Geräte von anderen Herstellern.

Das unten beschriebene Microsoft Dual-Screen SDK funktioniert nur auf Microsoft Surface Duo-Geräten.

Das Microsoft Dual-Screen SDK ist als Paket verfügbar, das in Ihrem Unity-Projekt enthalten sein kann. Passen Sie das Gradle-Buildsystem an, und fügen Sie dann eine C#-Hilfsklasse hinzu, die die native Java-API aufruft.

Microsoft Dual-Screen SDK für Surface Duo

Der SurfaceDuoScreenHelper.cs-Code stellt Methoden bereit, die Informationen verfügbar machen, die vom Microsoft SDK für Surface Duo bereitgestellt werden:

  • DeviceHelper.IsDualScreenDevice. Rufen Sie diese Methode auf, bevor Sie auf andere duale Bildschirm-APIs zugreifen.
  • ScreenHelper.GetCurrentRotation. Rufen Sie den aktuellen Drehwert ab. Der Wert 0 bedeutet 0 Grad, 1 bedeutet 90 Grad, 2 bedeutet 180 Grad, und 3 bedeutet 270 Grad.
  • ScreenHelper.IsDualMode. Gibt an, ob sich die App über beide Bildschirme erstreckt. Der Viewport wird teilweise durch die Lücke zwischen Bildschirmen verdeckt.
  • ScreenHelper.GetScreenRectangles. Gibt die Abmessungen der beiden Bildschirme in Pixeln zurück.
  • ScreenHelper.GetHinge. Gibt die Abmessungen des verdeckten Bereichs des Viewports in Pixeln zurück. Wenn die App nicht überspannt ist, gibt dies null Dimensionen zurück. Da es nur auf einem einzelnen Bildschirm angezeigt wird, wird nichts verdeckt.

Zeigen Sie Beispielcode für diese Methoden im Unity ScreenHelper-Beispiel an. Im Beispiel werden Geräteinformationen angezeigt, wie im folgenden Screenshot dargestellt:

Screenshot shows a Unity game sample screen data.

Implementieren des Microsoft Dual-Screen SDK in Unity

Ein Beispiel für diese Integration ist im 2019-LTS-Archivverzweig des Unity-Beispiel-Repositorys verfügbar.

  1. Aktualisiere mainTemplate.gradle, um das Surface-Duo Android SDK herunterzuladen:

    maven {
        url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
    }
    

    und

    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
        implementation "com.microsoft.device:dualscreen-layout:0.9.0"
    }
    
  2. Kopiere dieses Skript SurfaceDuoScreenHelper.cs in das Spieleprojekt.

  3. Verwenden Sie die auf dieser Seite aufgeführten Dual-Screen-Methoden, um Ihr Spiel für Dual-Screen-Geräte zu verbessern.

Nächste Schritte

Sehen Sie sich Unity-Spielbeispiele für Surface Duo an.