Compartilhar via


Acessar informações de tela dupla no Surface Duo do Unity

Observação

Novos projetos do Unity devem usar o Gerenciador de Janelas do Jetpack para recursos de dispositivo dobráveis. Ele funciona para Surface Duo, Surface Duo 2 e dispositivos de outros fabricantes.

O SDK de tela dupla da Microsoft descrito abaixo funciona apenas em dispositivos Microsoft Surface Duo.

O SDK de tela dupla da Microsoft está disponível como um pacote que pode ser incluído em seu projeto do Unity. Personalize o sistema de build de gradle e adicione uma classe auxiliar C# que chama a API Java nativa.

SDK de tela dupla da Microsoft para Surface Duo

O código SurfaceDuoScreenHelper.cs fornece métodos que expõem informações fornecidas pelo SDK da Microsoft para Surface Duo:

  • DeviceHelper.IsDualScreenDevice. Chame esse método antes de acessar outras APIs de tela dupla.
  • ScreenHelper.GetCurrentRotation. Obtenha o valor de rotação atual. O valor 0 significa 0 graus, 1 significa 90 graus, 2 significa 180 graus, e 3 significa 270 graus.
  • ScreenHelper.IsDualMode. Se o aplicativo está estendido em ambas as telas. O visor é parcialmente obscurecido pela lacuna entre as telas.
  • ScreenHelper.GetScreenRectangles. Retorna as dimensões das duas telas em pixels.
  • ScreenHelper.GetHinge. Retorna as dimensões da área obscurecida do visor em pixels. Se o aplicativo não for estendido, ele retornará dimensões zero. Como ele está sendo exibido apenas em uma única tela, nada está sendo obscurecido.

Exiba o código de exemplo para esses métodos no exemplo do Unity ScreenHelper. O exemplo exibe informações do dispositivo, conforme mostrado na captura de tela abaixo:

Screenshot shows a Unity game sample screen data.

Implementar o SDK de tela dupla da Microsoft no Unity

Um exemplo dessa integração está disponível no branch 2019-LTS-archive do repositório de exemplos do Unity.

  1. Atualize mainTemplate.gradle para baixar o SDK do Android para Surface Duo:

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

    e no

    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
        implementation "com.microsoft.device:dualscreen-layout:0.9.0"
    }
    
  2. Copie este script SurfaceDuoScreenHelper.cs em seu projeto de jogo.

  3. Use os métodos de tela dupla listados nesta página para aprimorar o jogo para dispositivos de tela dupla.

Próximas etapas

Examine os exemplos de jogo do Unity para o Surface Duo.