在当今竞争激烈的游戏市场中,触达任何平台都比以往任何时候都更加重要 尽可能扩大受众群体范围通过针对不同外形规格开发游戏 例如手机、平板电脑、可折叠设备和桌面设备 潜在玩家并提高成功几率
支持屏幕大小调整
为了支持不同的外形规格,游戏必须可调整大小。尺寸可调整性 让您的游戏支持纵向和 横屏模式、多窗口模式以及折叠和展开状态 可折叠设备
如果您的游戏不支持所有窗口大小 和屏幕方向配置不同时, 兼容模式,并在必要时提示玩家 然后再更改为不受支持的配置。
![](https://developer.android.google.cn/static/images/games/multiplatform/configuration_compatibility_dialog.png?authuser=5&hl=nb)
如需了解详情,请参阅 支持大屏设备尺寸调整功能。
多窗口模式
多窗口模式 模式可启用 多个应用同时共享同一个屏幕。应用可以并排显示 或分屏模式时,一个应用在小窗口中叠加显示 或独立可移动应用中的个别应用 可调整大小的窗口(自由窗口模式)。
为了避免游戏在运行期间进入兼容模式, 在多窗口模式下运行,请声明您的游戏能够处理 在 Unity build 设置。
![](https://docs.unity3d.com/uploads/Main/PlayerSetAndroidResPres.png)
刘海屏
刘海屏是某些设备上的一个区域 延伸至显示表面刘海屏可实现无边框 同时在设备正面为重要传感器提供空间 设备。
![](https://developer.android.google.cn/static/games/engines/unity/images/cutout-intro.png?authuser=5&hl=nb)
要为您的游戏提供无边框体验,请将游戏配置为 安全帧感知功能查询 Unity safeArea API,以获取 屏幕的安全区域(以像素为单位),并调整游戏界面和用户体验 尤其是针对用户可以互动的元素
可折叠设备的折叠状态
可折叠设备可能处于各种折叠状态,例如
FLAT
(完全打开)或
HALF_OPENED
(介于完全打开和完全关闭之间)。当设备位于
HALF_OPENED
状态,则提供两种折叠状态,具体取决于
折叠状态:桌面折叠状态(水平折叠边)和图书折叠状态(垂直折叠边)。
使用桌面折叠状态提升玩家沉浸感和互动度。
![](https://developer.android.google.cn/static/images/games/multiplatform/foldable_posture_support.png?authuser=5&hl=nb)
如需实现桌面折叠状态,请执行以下操作: 扩展默认的 Unity activity,然后 使用 Jetpack WindowManager 布局库 让游戏具备折叠感知能力。
Unity 示例项目
Unity 示例项目基于 Unity 2D 演示项目 Lost Crypt。示例项目演示了如何 支持在 Unity 中实现大屏尺寸调整。大屏设备和可折叠设备 支持对 Unity 构建选项进行一些更改, 关于相机和界面画布布局的注意事项
您可以立即下载示例项目。 该项目包含四个不同的场景:
- 原始版本:支持基本的可调整大小功能
- 锚定:与“Original”相同但可适应各种宽高比 并避开刘海屏
- HingeAware:与“锚定”相同场景,但支持桌面折叠状态
- 主菜单:起始场景,支持导航到其他场景和 完全支持所有设备屏幕方向、折叠、展开和桌面折叠状态
针对 Android 进行构建时,请选择所有场景并设置“Mainmenu”场景 作为起始场景。
![](https://developer.android.google.cn/static/games/engines/unity/images/mainmenu.png?authuser=5&hl=nb)
从支持可调整大小的窗口开始
实现对各种显示屏尺寸和宽高比的支持,
Android 大屏应用,用于确保您的游戏或应用能够正常显示
在不同设备上正常运行允许游戏调整大小和更改
在 Unity build 中设置 Resizable Window 属性,以设置宽高比
设置(请参阅多窗口模式部分)。调整
相机和画布的宽高比,以便更好地适应不同的
屏幕。在 Build Settings 和
Plugins/Android/AndroidManifest.xml
文件。体验全屏
项目“Original”中的可调整大小功能场景。
![](https://developer.android.google.cn/static/games/engines/unity/images/full_resizable.png?authuser=5&hl=nb)
在处理刘海屏时实现全屏沉浸式
允许游戏使用整个屏幕来进行游戏内容 从而增强用户体验更新游戏界面锚点 相机设置可根据你的需求自动调整 屏幕尺寸这样,界面元素便可保持它们相对于 屏幕尺寸
“锚定”场景使用了
CameraAspectLock
脚本来响应设备配置更改,
扩展 Activity 的方法(请参阅
Assets/Plugins/Android/LargeScreenPlayableActivity.java
).Unity 的
在 SafeZoneAPI
中演示了 safeArea API
该脚本会绑定到“Anchoring”组件内的SafeZone
对象场景。
![可折叠设备的内外显示屏上全屏显示游戏场景。](https://developer.android.google.cn/static/games/engines/unity/images/display_cutout.png?authuser=5&hl=nb)
针对可折叠设备进行优化
Unity 示例项目“HingeAware”的最后一个场景包含一个
响应不同折叠的 ConfigurationManager
对象
通过 Jetpack 库 API 和
扩展活动(请参阅
Assets/Plugins/Android/LargeScreenPlayableActivity.java
)。场景使用了
PanelOnFold
脚本,用于根据折叠状态控制界面
设备的实际界面,例如,当使用
设备处于桌面模式,并且正在调整摄像头。
![](https://developer.android.google.cn/static/games/engines/unity/images/table_top.png?authuser=5&hl=nb)