拥有 200M+ Xbox 和 PlayStation 玩家的游戏机,为您提供了获得更多用户的重大机会。与常规设备相比,设计控制器和游戏机的 10 英尺 UI 体验有一些特殊指南,您需要遵循以帮助您的体验在游戏机上成功。
为控制器设计
控制台体验通过输入控制器从用户那里接收命令,这需要特殊设计以实现顺畅的交互。
简化用户界面

将以下内容应用到简化控制台用户界面设计中:
可访问的导航控件 :基线导航,包括四个方向,选择和返回,用户在控制台上获取和与您的内容互动的方式。确保用户使用这些基本导航控件可以访问所有界面元素,从而轻松访问您体验的每个互动部分。
默认控制器导航 :尽管用户可以通过激活虚拟鼠标访问 UI 菜单,但由于不所有用户都熟悉该过程,因此您需要支持您的 UI 的控制器导航作为默认选项,而不是需要用户激活虚拟鼠标。
最小控制器输入复杂度 :与可点击或单击的输入方法不同,控制台用户通过按一次按钮来导航,因此在其他设备上执行一次操作可能需要额外的移动,以便控制器执行。确保您体验中的关键操作只需几次移动即可1) 使用权 2)通行证 3)访问权限。
没有聊天窗口 : 无论您使用默认体验文本聊天系统还是分叉遗产聊天系统作为自定义聊天系统,禁用聊天窗口 对于终端体验。
添加补充控件
与手机和桌面相比,在控制台上的导航始终是顺序的,因此用户无法像在其他设备上那样快速跳转到远处的元素。为了提高导航速度,请考虑添加额外的按钮和快捷方式来执行必要的经验操作。
容纳动态按钮图标

随着您的体验扩展到更多平台,请确保显示与不同设备匹配的按钮图标。UserInputService 有两个可用的方法可以实现这一目标:
UserInputService:GetStringForKeyCode() 可将美国查询键代码转换为控制台键盘布局。它有助于将自定义资产显示为按钮图标,与体验的外观和感觉匹配。以下示例显示了您如何映射自定义资产到 Enum.KeyCode.ButtonA :
映射自定义资产local UserInputService = game:GetService("UserInputService")local imageLabel = script.Parentlocal key = Enum.KeyCode.ButtonAlocal mappings = {ButtonA = "rbxasset://BUTTON_A_ASSET", -- 替换为所需的 ButtonA 素材ButtonCross = "rbxasset://BUTTON_CROSS_ASSET" -- 替换为所需的 ButtonCross 素材}local mappedKey = UserInputService:GetStringForKeyCode(key)local image = mappings[mappedKey]imageLabel.Image = imageUserInputService:GetImageForKeyCode() 返回 Roblox 默认图标为请求的键代码作为简单的插入替换,如下示例所示映射 Enum.KeyCode.ButtonA 显示:
映射默认图标local UserInputService = game:GetService("UserInputService")local imageLabel = script.Parentlocal key = Enum.KeyCode.ButtonAlocal mappedIcon = UserInputService:GetImageForKeyCode(key)imageLabel.Image = mappedIcon
提供触觉反馈

控制器的一个独特优势是通过物理振动控制器来提供反馈来激活用户的触觉的能力。您可以使用 HapticService 来提升用户沉浸度并提供有用的反馈。可以通过触觉反馈获得更多沉浸感的例子包括:
- 物理惊人事件,例如爆炸或碰撞。
- 需要用户注意的事件,例如门铃响或新客户进入商购物。
- 用户界面操作通知,例如滚动到列表末端或单击已禁用的按钮。
HapticService 还允许您在控制器中控制单个马达设置震动强度和时长,因此您可以为不同目的设置不同震动并保持行动触发反馈的一致性。仔细设计振动,避免过度使用,因为用户可能会觉得持续振动很烦人和烦人。
为 10ft 体验构建

当在控制台上时,用户通常坐在屏幕 10 英尺处。1.5x的缩放因子确保用户界面舒适、易于导航栏,且具有可读的字体。
考虑电视安全区

由于历史和技术限制,不是所有电视都能完全显示在屏幕边缘,因此将用户界面元素放置在电视安全区域以确保重要的体验元素在各种电视上都可见。
实现动态调整的用户界面
使用相对尺寸和相对位置实现您的用户界面,以百分比计量所有内容。通过以下方式将缩放因子融入到所有 UI 尺寸:
- 首先开发低分辨率。
- 使用相对位置和 UISizeConstraint 来缩放 UI。
- 基于输出特性进行缩放 GuiService:IsTenFootInterface() .
- 实现 ScrollingFrame 以减少屏幕上的混乱,随着用户界面扩展。
适应进度披露

进度披露将高级或罕使用的功能推迟到次要屏幕。这是清理用户界面并使其易于使用的最好方法之一。对于控制台用户体验,更常见且更快捷地让用户进出屏幕而不是将所有内容放在一个屏幕上,就像设计台式电脑一样。
提供音效反馈
与桌面或移动设备界面不同,通常沉默或依赖微妙的触觉反馈的互动,您可以添加音效来改善控制台互动。当用户使用控制器通过 UI 导航时,考虑将音效融入以确认选择或信号菜单穿越,这可以提升整体体验。