Acceso a la información de doble pantalla en Surface Duo desde Unity
Nota
Los nuevos proyectos de Unity deben usar El Administrador de ventanas de Jetpack para las características de dispositivo plegables. Funciona para Surface Duo, Surface Duo 2 y dispositivos de otros fabricantes.
El SDK de doble pantalla de Microsoft que se describe a continuación solo funciona en dispositivos Microsoft Surface Duo.
El SDK de doble pantalla de Microsoft está disponible como un paquete que se puede incluir en el proyecto de Unity. Personalice el sistema de compilación de Gradle y agregue una clase auxiliar de C# que llame a la API nativa de Java.
SDK de doble pantalla de Microsoft para Surface Duo
El código SurfaceDuoScreenHelper.cs proporciona métodos que exponen información proporcionada por microsoft SDK para Surface Duo:
DeviceHelper.IsDualScreenDevice
. Llame a este método antes de acceder a otras API de doble pantalla.ScreenHelper.GetCurrentRotation
. Obtenga el valor de rotación actual. El valor 0 significa 0 grados, 1 significa 90 grados, 2 significa 180 grados y 3 significa 270 grados.ScreenHelper.IsDualMode
. Si la aplicación se distribuye entre ambas pantallas. La ventanilla está parcialmente oculta por la brecha entre las pantallas.ScreenHelper.GetScreenRectangles
. Devuelve las dimensiones de las dos pantallas en píxeles.ScreenHelper.GetHinge
. Devuelve las dimensiones del área oculta de la ventanilla en píxeles. Si la aplicación no está distribuida, devuelve cero dimensiones. Puesto que solo se muestra en una sola pantalla, no se oculta nada.
Vea el código de ejemplo de estos métodos en el ejemplo ScreenHelper de Unity. En el ejemplo se muestra información del dispositivo, como se muestra en la captura de pantalla siguiente:
Implementación del SDK de doble pantalla de Microsoft en Unity
Hay disponible un ejemplo de esta integración en la rama 2019-LTS-archive del repositorio de ejemplos de Unity.
Actualiza mainTemplate.gradle para descargar Android SDK para Surface Duo:
maven { url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' }
y
dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61" implementation "com.microsoft.device:dualscreen-layout:0.9.0" }
Copia este script SurfaceDuoScreenHelper.cs en el proyecto del juego.
Usa los métodos de doble pantalla que aparecen en esta página para mejorar tu juego para dispositivos de doble pantalla.
Pasos siguientes
Mira ejemplos de juegos de Unity para Surface Duo.