Roblox本质上是跨平台的,因为玩家可以在手机或平板电脑上发现并加入游戏,然后在PC或控制台上继续他们的进度。为了支持不断扩展的平台组合,您应该构建能够无缝适应输入类型(触摸、游戏手柄、鼠标/键盘)、屏幕大小和设备方向的用户界面。本指南、自适应设计指南以及链接的资源可以帮助您设计一个真正的跨平台游戏,使其在所有平台上都兼容、可访问和愉快。
输入
精心设计的游戏应支持所有主要输入类型,包括鼠标和键盘、触摸和游戏手柄。
跨平台操作
为了简化跨平台输入,Roblox提供了输入操作系统,用于定义操作(如“跳跃”、“冲刺”或“射击”)并设置多个硬件输入的绑定以驱动这些操作。您无需考虑所有硬件输入的技术细节以及何时监听特定输入触发;您只需定义哪些输入执行哪些操作。

输入类型检测
在跨平台开发中,确定并响应玩家使用的主要输入类型非常重要,通常是为了确保UI元素(如屏幕按钮和菜单)在不同设备上优雅地工作并支持交互。
例如,触摸启用的设备假设触摸是默认输入,并且可能会出现触摸按钮用于操作,但玩家可能选择连接蓝牙游戏手柄。在这种情况下,触摸仍然是有效输入,但您可以假设玩家希望将连接的游戏手柄作为主要输入类型,并可能使用触摸作为屏幕UI的备用输入。
如果您使用输入操作系统,PreferredBinding属性补充了主要输入检测:就像PreferredInput报告玩家当前的主要输入类型一样,PreferredBinding报告与玩家当前设备匹配的特定InputBinding。当玩家切换设备时,两者都会自动更新,因此您可以驱动设备感知的UI,而无需自己编写设备切换逻辑。
辅助提示
基于主要输入类型,建议您在可能的情况下包含辅助UI提示。例如,当选择要装备的工具时,当玩家使用键盘时显示输入特定的提示,如1–5,或者当玩家使用游戏手柄时显示游戏手柄触发器提示。
对于更细粒度的控制,或者如果您需要自定义提示显示超出InputActionLabel所提供的内容,您可以使用以下UserInputService方法手动收集平台特定的图像和字符串:

GetImageForKeyCode()和GetStringForKeyCode()方法在收集平台特定的图像或字符串以用于UI提示时非常有用,例如以下示例:
| 按键代码 | Xbox图像 | PlayStation图像 | 字符串 |
|---|---|---|---|
| Enum.KeyCode.ButtonA | ButtonA | ||
| Enum.KeyCode.ButtonX | ButtonX | ||
| Enum.KeyCode.One | n/a | n/a | 1 |
| Enum.KeyCode.Five | n/a | n/a | 5 |
用户界面
设计良好的用户界面对所有平台的玩家与您的游戏进行交互至关重要。
位置和大小
所有UI元素应适当地定位和大小,以确保在多个屏幕大小上可见和可交互。通过Scale定位UI元素是一种常见的方法,因为它基于屏幕的X和Y边界的百分比,而不是像素值(像素在不同设备上可以任意变化)。您还可以利用元素的AnchorPoint来设置其位置原点。例如,以下图像中持有宝石/硬币计数器的UI容器位于X比例为1(右)和Y比例为0(上),并具有右上角的锚点。

Scale也建议用于调整UI元素的大小,例如使UI容器在每个屏幕上占据75%的宽度。然而,75%在4K 电视上对于控制台玩家来说会显得非常大,因此建议您探索屏幕大小适应作为在不同视口之间调整UI布局的一种方式。
屏幕大小适应
由于Roblox平台上可访问的屏幕大小多种多样,尝试通过像素预测屏幕大小往往会导致误解。为了帮助确定玩家的屏幕大小以调整UI元素的大小/位置,Roblox提供了只读的ViewportDisplaySize属性,该属性表示视口的内部分类渲染大小。
| ViewportDisplaySize | 总结 |
|---|---|
| Small | 大多数平板电脑/移动设备/手持设备 |
| Medium | 大多数笔记本电脑和显示器 |
| Large | 大多数电视或更大 |
为了获得更本地化的自定义,您可以使用UI 样式编辑器为ViewportDisplaySize和PreferredInput值配置样式查询。使用内在选择器,如@ViewportDisplaySizeSmall或@PreferredInputTouch,可以让您的UI在玩家的设备环境或主要输入方法变化时自动交换文本大小、容器尺寸和其他测量的令牌。
布局容器
为了更轻松地组织UI,您应该使用布局组件来组织子元素。在使用布局容器时,确保子元素可读、可访问且不杂乱。一个常见的布局组件是UIListLayout,它将兄弟GuiObjects定位到行或列中,并在您添加或删除兄弟对象时相应调整。
您还应该考虑在布局容器内元素的分布和相对位置,以获得最佳用户体验。将flex集成到列表布局中是一种强大的方式,可以均匀填充/分配或对齐/拉伸项目,或在可变空间中单独调整特定项目。

可访问性
即使在所有设备屏幕大小上适当调整大小的UI元素,整体游戏也应满足可访问性标准,以便为视力受损或色盲的玩家提供服务。文本大小对基于文本的UI的可读性影响很大,因此您应该包含文本大小约束,以确保文本不会变得难以辨认(太小)或在较大屏幕(如4K 电视)上视觉上过大。
有关可访问性的更多提示,请参见可访问性指南。
最终提示与技巧
在您努力实现完整的跨平台游戏时,请考虑以下提示和技巧:
- 一旦您的游戏有效地实现了跨平台,探索本地功能,如在移动设备和游戏手柄上的触觉反馈、触摸手势(如TouchSwipe和TouchPinch),或在AccelerometerEnabled和GyroscopeEnabled设备上的加速度计和陀螺仪功能。



