Unity에서 Surface Duo의 이중 화면 정보에 액세스

참고

새 Unity 프로젝트는 접을 수 있는 디바이스 기능에 Jetpack Window Manager 를 사용해야 합니다. Surface Duo, Surface Duo 2 및 다른 제조업체의 디바이스에서 작동합니다.

아래에 설명된 Microsoft 이중 화면 SDK는 Microsoft Surface Duo 디바이스에서만 작동합니다.

Microsoft 이중 화면 SDK는 Unity 프로젝트에 포함될 수 있는 패키지로 사용할 수 있습니다. gradle 빌드 시스템을 사용자 지정한 다음 네이티브 Java API를 호출하는 C# 도우미 클래스를 추가합니다.

Surface Duo용 Microsoft 이중 화면 SDK

SurfaceDuoScreenHelper.cs 코드는 Surface Duo용 Microsoft SDK에서 제공하는 정보를 노출하는 메서드를 제공합니다.

  • DeviceHelper.IsDualScreenDevice. 다른 이중 화면 API에 액세스하기 전에 이 메서드를 호출합니다.
  • ScreenHelper.GetCurrentRotation. 현재 회전 값을 가져옵니다. 값 0은 0도, 1은 90도, 2는 180도, 3은 270도를 의미합니다.
  • ScreenHelper.IsDualMode. 앱이 두 화면에 걸쳐 있는지 여부입니다. 뷰포트는 화면 사이의 간격으로 부분적으로 가려집니다.
  • ScreenHelper.GetScreenRectangles. 두 화면의 크기를 픽셀 단위로 반환합니다.
  • ScreenHelper.GetHinge. 뷰포트의 가려진 영역의 크기를 픽셀 단위로 반환합니다. 앱이 스팬되지 않으면 0차원을 반환합니다. 단일 화면에만 표시되므로 아무것도 가려지지 않습니다.

Unity ScreenHelper 샘플에서 이러한 메서드에 대한 샘플 코드를 봅니다. 샘플은 아래 스크린샷과 같이 디바이스 정보를 표시합니다.

Screenshot shows a Unity game sample screen data.

Unity에서 Microsoft 이중 화면 SDK 구현

이 통합의 예는 Unity 샘플 리포지토리의 2019-LTS 보관 분기 에서 사용할 수 있습니다.

  1. mainTemplate.gradle을 업데이트하여 Surface Duo Android SDK를 다운로드합니다.

    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. 이 페이지에 나열된 이중 화면 방법을 사용하여 이중 화면 디바이스에 대한 게임을 향상시킵니다.

다음 단계

Surface Duo에 대한 Unity 게임 샘플을 살펴보십시오.