从 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 复制到游戏项目中。
使用此页面中列出的双屏方法增强双屏设备的游戏。