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 集成到列表佈局中是一種強大的方法,可以 均等填充/分配 或 對齊/拉伸 項目,或在可變空間中 flex 特定項目。

可訪問性
即使在所有設備屏幕大小上 正確調整大小 的 UI 元素,整體遊戲也應符合 可訪問性標準,以便為視力受損或色盲的玩家提供服務。文本大小對於基於文本的 UI 的可讀性影響很大,因此您應該包含 文本大小約束,以確保文本不會變得難以辨認(太小)或在較大屏幕(如 4K 電視)上視覺上過大。
有關可訪問性的更多提示,請參見 可訪問性指南。
最後的提示與技巧
在您努力實現完整的跨平台遊戲時,考慮以下提示和技巧:
- 一旦您的遊戲有效地實現了跨平台,探索本地功能,如 移動設備 和 遊戲手柄 的觸覺反饋、TouchSwipe 和 TouchPinch 等觸控手勢,或在 AccelerometerEnabled 和 GyroscopeEnabled 設備上的加速度計和陀螺儀功能。



