Доступ к сведениям о двухэкранном режиме в Surface Duo из Unity

Примечание

Новые проекты Unity должны использовать Jetpack Window Manager для функций свертываемых устройств. Он работает для Устройств Surface Duo, Surface Duo 2 и других производителей.

Пакет SDK для двухэкранных устройств Майкрософт, описанный ниже, работает только на устройствах Microsoft Surface Duo.

Пакет SDK для двухэкранных приложений Майкрософт доступен в виде пакета, который можно включить в проект Unity. Настройте систему сборки gradle и добавьте вспомогательный класс C#, который вызывает собственный API Java.

Пакет SDK для Двойного экрана Майкрософт для Surface Duo

Код SurfaceDuoScreenHelper.cs предоставляет методы, предоставляющие сведения, предоставляемые Microsoft SDK для Surface Duo:

  • DeviceHelper.IsDualScreenDevice. Вызовите этот метод перед доступом к другим API с двумя экранами.
  • ScreenHelper.GetCurrentRotation. Возвращает текущее значение поворота. Значение 0 означает 0 градусов, 1 означает 90 градусов, 2 означает 180 градусов, а 3 означает 270 градусов.
  • ScreenHelper.IsDualMode. Распространяется ли приложение на обоих экранах. Окно просмотра частично скрывается разрывом между экранами.
  • ScreenHelper.GetScreenRectangles. Возвращает размеры двух экранов в пикселях.
  • ScreenHelper.GetHinge. Возвращает размеры скрытой области окна просмотра в пикселях. Если приложение не охватывается, возвращается нулевое измерение. Так как он отображается только на одном экране, ничего не скрывается.

Просмотрите пример кода для этих методов в примере Unity ScreenHelper. В примере отображаются сведения об устройстве, как показано на снимке экрана ниже:

Screenshot shows a Unity game sample screen data.

Реализация пакета SDK для двухэкранных приложений Майкрософт в Unity

Пример этой интеграции доступен в филиале 2019-LTS-archive репозитория примеров Unity.

  1. Обновите mainTemplate.gradle, чтобы скачать пакет SDK для Android Surface Duo:

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

    и

    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
        implementation "com.microsoft.device:dualscreen-layout:0.9.0"
    }
    
  2. Скопируйте скрипт SurfaceDuoScreenHelper.cs в проект игры.

  3. Используйте методы с двумя экранами, перечисленные на этой странице, чтобы улучшить игру для устройств с двумя экранами.

Следующие шаги

Ознакомьтесь с примерами игр Unity для Surface Duo.