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:
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.
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" }
Copie este script SurfaceDuoScreenHelper.cs em seu projeto de jogo.
Use os métodos de tela dupla listados nesta página para aprimorar o jogo para dispositivos de tela dupla.