從 Unity 存取 Surface Duo 上的雙螢幕資訊
注意
新的 Unity 專案應該使用 Jetpack 視窗管理員 進行可折迭的裝置功能。 它適用于來自其他製造商的 Surface Duo、Surface Duo 2 和裝置。
以下所述的 Microsoft 雙螢幕 SDK 僅適用于 Microsoft Surface Duo 裝置。
Microsoft 雙螢幕 SDK 可做為可包含在 Unity 專案中的套件。 自訂 gradle 組建系統,然後新增可呼叫原生 JAVA API 的 C# 協助程式類別。
適用于 Surface Duo 的 Microsoft 雙螢幕 SDK
SurfaceDuoScreenHelper.cs程式碼提供方法,可公開 Microsoft SDK for Surface Duo 所提供的資訊:
DeviceHelper.IsDualScreenDevice
. 存取其他雙螢幕 API 之前,請先呼叫此方法。ScreenHelper.GetCurrentRotation
. 取得目前的旋轉值。 值 0 表示 0 度,1 表示 90 度,2 表示 180 度,3 表示 270 度。ScreenHelper.IsDualMode
. 應用程式是否跨越這兩個畫面。 檢視區部分被螢幕之間的間距遮蔽。ScreenHelper.GetScreenRectangles
. 以圖元傳回兩個螢幕的維度。ScreenHelper.GetHinge
. 以圖元傳回檢視區遮蔽區域的維度。 如果應用程式未跨越,這會傳回零維度。 因為它只會顯示在單一畫面上,所以不會遮蔽任何內容。
在 Unity ScreenHelper 範例中檢視這些方法的範例程式碼。 此範例會顯示裝置資訊,如下列螢幕擷取畫面所示:
在 Unity 中實作 Microsoft 雙螢幕 SDK
此整合的範例位於 Unity 範例存放庫 的 2019-LTS-archive 分支 上。
更新 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" }
將 SurfaceDuoScreenHelper.cs 指令碼複製到遊戲專案。
使用此頁面所列的雙螢幕方法來增強雙螢幕裝置的遊戲。