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

输入类型检测
在跨平台开发中,确定和响应玩家使用的主要输入类型至关重要,通常为了确保用户界面元素(如屏幕按钮和菜单)在设备之间工作优雅并支持互动。
例如,触控设备假设触控是默认输入,触控按钮可能会出现在动作中,但玩家可能选择连接蓝牙手柄。在这种情况下,触控仍然是有效的输入,但您可以假设玩家希望将连接的手柄作为主要输入类型,并可能使用触控作为屏幕用户界面的备份输入。
辅助提示
根据主要输入类型,建议您在可能的情况下包含辅助用户界面提示。例如,当选择要装备的工具时,显示输入特定的提示,如玩家使用键盘时显示1–5,或玩家使用手柄时显示手柄触发器提示。

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

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

可访问性
即使用户界面元素在所有设备屏幕尺寸上适当调整,整个游戏仍应满足为视力受损或色盲玩家设定的可访问性标准。文本大小在基于文本的用户界面可读性方面起着重要作用,因此您应包含文本大小限制,确保文本不会变得难以辨认(太小)或在像4K 电视这样的较大屏幕上视觉上过大。
有关可访问性的更多提示,请参见这里。
最后的提示和技巧
在您朝着一个完整的跨平台游戏努力时,请考虑以下提示和技巧:
- 一旦您的游戏有效实现跨平台,探索本地功能,如移动设备和手柄的触觉反馈,触摸手势如TouchSwipe和TouchPinch,或在AccelerometerEnabled和GyroscopeEnabled设备上的加速度计和陀螺仪功能。



