让您的 Unity 游戏在所有外形规格的设备上表现出色

在当今竞争激烈的游戏市场中,触达任何平台都比以往任何时候都更加重要 尽可能扩大受众群体范围通过针对不同外形规格开发游戏 例如手机、平板电脑、可折叠设备和桌面设备 潜在玩家并提高成功几率

支持屏幕大小调整

为了支持不同的外形规格,游戏必须可调整大小。尺寸可调整性 让您的游戏支持纵向和 横屏模式、多窗口模式以及折叠和展开状态 可折叠设备

如果您的游戏不支持所有窗口大小 和屏幕方向配置不同时, 兼容模式,并在必要时提示玩家 然后再更改为不受支持的配置。

图 1.配置兼容性对话框。

如需了解详情,请参阅 支持大屏设备尺寸调整功能

多窗口模式

<ph type="x-smartling-placeholder">。 <ph type="x-smartling-placeholder">
</ph> 图 2.桌面设备和可折叠设备处于桌面折叠状态时的界面有所不同。

多窗口模式 模式可启用 多个应用同时共享同一个屏幕。应用可以并排显示 或分屏模式时,一个应用在小窗口中叠加显示 或独立可移动应用中的个别应用 可调整大小的窗口(自由窗口模式)。

为了避免游戏在运行期间进入兼容模式, 在多窗口模式下运行,请声明您的游戏能够处理 在 Unity build 设置

图 3.Unity 针对 Android 的分辨率和呈现设置。

刘海屏

刘海屏是某些设备上的一个区域 延伸至显示表面刘海屏可实现无边框 同时在设备正面为重要传感器提供空间 设备。

图 4.刘海屏。

要为您的游戏提供无边框体验,请将游戏配置为 安全帧感知功能查询 Unity safeArea API,以获取 屏幕的安全区域(以像素为单位),并调整游戏界面和用户体验 尤其是针对用户可以互动的元素

可折叠设备的折叠状态

可折叠设备可能处于各种折叠状态,例如 FLAT (完全打开)或 HALF_OPENED (介于完全打开和完全关闭之间)。当设备位于 HALF_OPENED 状态,则提供两种折叠状态,具体取决于 折叠状态:桌面折叠状态(水平折叠边)和图书折叠状态(垂直折叠边)。 使用桌面折叠状态提升玩家沉浸感和互动度。

图 5.游戏的桌面折叠状态,主视图位于显示屏的垂直部分,控件位于水平部分。

如需实现桌面折叠状态,请执行以下操作: 扩展默认的 Unity activity,然后 使用 Jetpack WindowManager 布局库 让游戏具备折叠感知能力

Unity 示例项目

Unity 示例项目基于 Unity 2D 演示项目 Lost Crypt。示例项目演示了如何 支持在 Unity 中实现大屏尺寸调整。大屏设备和可折叠设备 支持对 Unity 构建选项进行一些更改, 关于相机和界面画布布局的注意事项

您可以立即下载示例项目。 该项目包含四个不同的场景:

  • 原始版本:支持基本的可调整大小功能
  • 锚定:与“Original”相同但可适应各种宽高比 并避开刘海屏
  • HingeAware:与“锚定”相同场景,但支持桌面折叠状态
  • 主菜单:起始场景,支持导航到其他场景和 完全支持所有设备屏幕方向、折叠、展开和桌面折叠状态

针对 Android 进行构建时,请选择所有场景并设置“Mainmenu”场景 作为起始场景。

图 6. “主菜单”场景可让您以桌面模式导航到其他场景。

从支持可调整大小的窗口开始

实现对各种显示屏尺寸和宽高比的支持, Android 大屏应用,用于确保您的游戏或应用能够正常显示 在不同设备上正常运行允许游戏调整大小和更改 在 Unity build 中设置 Resizable Window 属性,以设置宽高比 设置(请参阅多窗口模式部分)。调整 相机和画布的宽高比,以便更好地适应不同的 屏幕。在 Build SettingsPlugins/Android/AndroidManifest.xml 文件。体验全屏 项目“Original”中的可调整大小功能场景。

图 7. “原文”场景支持“可调整大小的窗口”功能。

在处理刘海屏时实现全屏沉浸式

允许游戏使用整个屏幕来进行游戏内容 从而增强用户体验更新游戏界面锚点 相机设置可根据你的需求自动调整 屏幕尺寸这样,界面元素便可保持它们相对于 屏幕尺寸

“锚定”场景使用了 CameraAspectLock 脚本来响应设备配置更改, 扩展 Activity 的方法(请参阅 Assets/Plugins/Android/LargeScreenPlayableActivity.java).Unity 的 在 SafeZoneAPI 中演示了 safeArea API 该脚本会绑定到“Anchoring”组件内的SafeZone对象场景。

可折叠设备的内外显示屏上全屏显示游戏场景。
图 8. “锚定”带有刘海屏的场景

针对可折叠设备进行优化

Unity 示例项目“HingeAware”的最后一个场景包含一个 响应不同折叠的 ConfigurationManager 对象 通过 Jetpack 库 API扩展活动(请参阅 Assets/Plugins/Android/LargeScreenPlayableActivity.java)。场景使用了 PanelOnFold 脚本,用于根据折叠状态控制界面 设备的实际界面,例如,当使用 设备处于桌面模式,并且正在调整摄像头。

图 9. “HingeAware”场景支持桌面折叠状态。