Accedere a informazioni su doppio schermo in Surface Duo da Unity

Nota

I nuovi progetti Unity devono usare Jetpack Window Manager per le funzionalità dei dispositivi piegabili. Funziona per Surface Duo, Surface Duo 2 e dispositivi di altri produttori.

Microsoft dual screen SDK descritto di seguito funziona solo nei dispositivi Microsoft Surface Duo.

Microsoft dual screen SDK è disponibile come pacchetto che può essere incluso nel progetto Unity. Personalizzare il sistema di compilazione gradle e quindi aggiungere una classe helper C# che chiama l'API Java nativa.

SDK a doppio schermo Microsoft per Surface Duo

Il codice SurfaceDuoScreenHelper.cs fornisce metodi che espongono informazioni fornite da Microsoft SDK per Surface Duo:

  • DeviceHelper.IsDualScreenDevice. Chiamare questo metodo prima di accedere ad altre API a doppio schermo.
  • ScreenHelper.GetCurrentRotation. Ottenere il valore di rotazione corrente. Il valore 0 significa 0 gradi, 1 significa 90 gradi, 2 significa 180 gradi e 3 significa 270 gradi.
  • ScreenHelper.IsDualMode. Se l'app è estesa in entrambe le schermate. Il riquadro di visualizzazione è parzialmente offuscato dal divario tra le schermate.
  • ScreenHelper.GetScreenRectangles. Restituisce le dimensioni delle due schermate in pixel.
  • ScreenHelper.GetHinge. Restituisce le dimensioni dell'area oscurata del riquadro di visualizzazione in pixel. Se l'app non è estesa, restituisce dimensioni zero. Poiché viene visualizzato solo su una singola schermata, non viene oscurato nulla.

Visualizzare il codice di esempio per questi metodi nell'esempio Unity ScreenHelper. L'esempio visualizza le informazioni sul dispositivo, come illustrato nello screenshot seguente:

Screenshot shows a Unity game sample screen data.

Implementare l'SDK a doppio schermo Microsoft in Unity

Un esempio di questa integrazione è disponibile nel ramo archivio 2019-LTS del repository di esempi di Unity.

  1. Aggiorna mainTemplate.gradle per scaricare Surface Duo Android SDK:

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

    e

    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
        implementation "com.microsoft.device:dualscreen-layout:0.9.0"
    }
    
  2. Copia questo script SurfaceDuoScreenHelper.cs nel progetto di gioco.

  3. Usare i metodi a doppio schermo elencati in questa pagina per migliorare il gioco per i dispositivi a doppio schermo.

Passaggi successivi

Esaminare gli esempi di gioco unity per Surface Duo.