基本设计注意事项

在实现游戏手柄支持时,请考虑以下基本要求,以帮助玩家享受流畅、不间断的游戏体验。

让 Play 商店中的用户知道您的游戏支持手柄

在 Android 清单中声明游戏手柄功能后,Google Play 上会显示游戏手柄支持图标和标签。请使用此声明,帮助更多用户发现并畅玩您的游戏。如需详细的配置说明和清单示例,请参阅 Play 商店公开范围和游戏手柄硬件功能。

让玩家在输入设备之间无缝切换

当玩家在输入设备之间切换时,请确保切换过程顺畅无阻。避免要求玩家在设置菜单中手动切换输入法或重启游戏。

赛车游戏分屏画面:在移动设备上玩游戏时,屏幕上会显示触控转向和氮气加速按钮;连接实体游戏手柄后,这些按钮会自动消失。
图 1. 在输入法之间无缝切换,而不会中断游戏。

自动切换并支持热插拔

让所有受支持的输入设备同时保持活跃状态,以便玩家可以随时在它们之间切换。在运行时监听输入设备的变化,以便游戏手柄在连接后立即运行,而无需重启应用,并在游戏过程中活跃控制器断开连接时无缝切换到其他可用的输入方法。如需检测控制器连接和断开连接,请参阅验证游戏控制器是否已连接(Kotlin 或 Java)或注册或移除控制器状态回调(C++ Game Controller 库)。在 Android 16(API 级别 36)及更低版本中,还需在清单中声明 android:configChanges="keyboard|keyboardHidden|navigation",这样连接或断开控制器时就不会重启 activity(请参阅处理配置变更)。

不推荐 推荐
不推荐:检测到控制器时,显示模态对话框,要求玩家在“设置”中手动切换输入模式并重启游戏。 推荐:显示一个非侵入式横幅,确认控制器已连接,并自动切换输入,同时显示游戏手柄提示。

更新了按钮图标和文字指南,以匹配当前设备

根据当前使用的输入设备,动态切换屏幕上的按钮图标和文字指南。例如,当游戏检测到游戏手柄输入时,将“点按即可跳跃”等触控指南转换为“按 B 即可跳跃”(或平台等效按钮)。

并排显示的冒险游戏画面:连接游戏手柄后,“点按即可跳跃”和“点按宝箱即可打开”提示会切换为“按 B 键即可跳跃”和“按 A 键即可打开宝箱”。
图 2. 动态更新屏幕上的按钮图标和指南文本,以匹配当前使用的控制器。

在游戏手柄处于活动状态时隐藏虚拟触控

为防止屏幕杂乱和玩家混淆,请在游戏手柄处于活动状态时隐藏所有虚拟轻触界面元素,例如虚拟摇杆和屏幕上的按钮。如果玩家轻触屏幕,则立即恢复触控界面。

并排显示的冒险游戏画面:在触控模式下,虚拟摇杆和挥剑攻击按钮清晰可见;连接游戏手柄后,这些按钮会自动隐藏,让视野更开阔。
图 3. 在游戏手柄输入处于活动状态时隐藏虚拟触控。

为所有游戏内逻辑提供全面的游戏手柄支持

避免依赖触控输入作为后备机制。使用触控方式退出菜单或执行游戏的特定部分可能会破坏沉浸感。实现所有游戏内互动,以便玩家可以完全使用游戏手柄进行互动。

将所有 HUD 元素和对话框映射到控制器输入

让玩家能够使用控制器通过专用快捷按钮、缓冲键或方向键 (D-pad) 导航来打开、关闭所有屏幕上的平视显示 (HUD) 元素、菜单和对话框,并与之互动,这样他们就不必触摸屏幕。

不推荐 推荐
不推荐:模态对话框和屏幕界面图标没有控制器快捷键,迫使玩家点按屏幕上的关闭按钮。 推荐:屏幕上的界面图标和模态对话框按钮映射到控制器输入,并带有清晰的 A 和 B 按钮提示。

区分游戏内容和界面输入上下文

当菜单或对话框在游戏画面上打开时,请切换上下文或屏蔽后台控件,以便游戏手柄仅与活跃界面互动。这种分离可防止菜单中的方向导航或按钮按下操作意外触发后台的角色移动或操作。

不推荐 推荐
不推荐:在打开的物品栏菜单中导航时,意外导致角色在后台移动并挥舞武器。 建议:打开物品栏菜单会阻止后台游戏内容输入,因此按下方向键和按钮只会移动物品网格焦点,而角色会保持静止。

在屏幕打开时立即分配初始焦点

与触控输入(玩家直接点按按钮)不同,游戏手柄导航会从当前获得焦点的元素移至相邻元素。如果新菜单或对话框打开时没有初始焦点目标,方向键和确认输入可能会无法响应或停留在背景元素上。在屏幕打开后立即将初始焦点分配给默认按钮。

不推荐 推荐
不推荐:打开暂停菜单后,没有任何按钮获得焦点,导致玩家无法使用方向键进行导航。 推荐做法:暂停菜单会立即突出显示默认的“继续”按钮,并带有清晰的焦点边框和 A 按钮提示。