有 200 多個 Xbox 和 PlayStation 玩家,遊戲主機是您吸引更多用戶的主要機會。 與普通設備相比,為控制器設計並且 10 英呎 UI 體驗的遊戲主機有一些特殊指南,您需要遵守來幫助您的體驗在主機上成功。
為控制器設計
領域體驗會接受用戶輸入控制器的指令,這些控制器需要特殊設計才能提供順滑的交互體驗。
簡化 UI
應用以下方法來簡化控制器的 UI 設計:
可以使用的導航控制 : 基本導航,包括四個方向、選擇和返回,控制用戶如何在控制台上瀏覽並與您的內容互動。確保使用這些基本導航控制來達到所有用戶體驗的互動點擊。
預設控制器導航 : 雖然使用者可以通過啟用虛擬指針啟動控制器選單,但由於不是所有使用者熟悉此過程,因此您需要支援控制器導航您的 UI 作為預設選項而不是要求使用者啟用虛擬指針。
最小控制器輸入複雜性 : 與點擊或點擊可選輸入方法不同,控制器使用者以按一次按鈕來導航,因此在其他設備上執行一次的行動可能會執行額外的行動,因此在您的體驗中的關鍵行動只需要幾個移動來存取。請確認您的體驗中的關鍵行動只需要幾個移動來存使用權 通行權 存取。
無聊聊天視窗 : 無論您使用預設的內容聊天系統或者作為自訂聊天系統的一部分來啟用聊天視窗,為了適用於控制台體驗, 關閉聊天視窗 對於控制台體驗。
增加額外控制
與移動和桌上型電腦不同,在遊戲機上導航是順序的,因此使用者不能在其他設備上與時間同步跳轉到更遠的元素。為了提升速度,請考慮在移動和桌上型電腦上添加額外的按鈕和快捷方式。
容納動態按鈕圖示
隨著您的體驗擴展到更多平台,請務必顯示按鈕圖示,這些圖示與不同的設備匹配。 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", -- 替換想要的按鈕素材ButtonCross = "rbxasset://BUTTON_CROSS_ASSET" -- 替換想要的按鈕十字素材}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 來強化用戶沉浸體驗並提供有用的反回饋。一些可以更讓人沉浸體驗的例子包括:
- 物理上激烈的事件,例如爆炸或衝突。
- 需要使用者注意的事件,例如門鈴鈴或新客戶進入商購物。
- 捲動到列表底部、點擊關閉按鈕等 UI 動作通知。
HapticService 也允許您控制控制器中的個別電機以設定個別的振動強度和持續時間,因此您可以為不同的目的設置不同的振動,並且可以維持與穩定的交互方式,以便您可以設置不同的目標,並且可以維持一致的體回饋。 設計震動精心,以避免過度使用,因為用戶可能會找到不同的震
建造 10 英尺的體驗
在控制台上時,使用者通常會坐在 10 英呎外的螢幕上。一個 1.5 倍的比例因素可以確保用戶界面是否正確、容易導覽,並且有可讀取的字體。
考慮電視安全區
由於電視不是完全顯示內容到螢幕邊緣,因此需要放置 UI 元素在 TV 安全區域以確保重要的體驗元素在各種電視上可見。
實現動態大小 UI
使用相對尺寸和相對位置來測量每個內容的百分比。 請使用比例因素測量所有 UI 尺寸:
- 建議先開發為低解析度。
- 使用相對位置和 UISizeConstraint 來調整 UI 尺寸。
- 基於輸出特性與 GuiService:IsTenFootInterface() 的比例。
- 將 ScrollingFrame 實現,以減少屏幕上 UI 擴展時的佔位。
進行階段揭示的適應
進度式揭示會將進階或罕見的功能暫時移至更低階的屏幕。這是一種最佳的方法來清理您的 UI 並讓它變得容易使用。 對於控制台 UX,它是一種常見且更快的方法,用戶可以在屏幕上進出,而不是將所有內容都放在一個屏幕上,像設計為桌上一樣容易使用。
提供聲音反饋
與桌上或移動端面相比,在這些端面上的交互通常是靜態或基於觸摸回饋式的,因此您可以添加音效來改善控制台交互。當使用者使用控制器瀏覽 UI 時,考慮添加音效來確認選擇或信號選擇,這可以提升總體體驗。