輸入

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

每個遊戲都需要接收用戶輸入,以便玩家與其環境互動和查看。Roblox 支持幾乎所有形式的輸入,包括 滑鼠/鍵盤觸控遊戲手柄 和 VR。

跨平台輸入

Roblox 本質上是 跨平台 的,因為玩家可以在其手機或平板電腦上發現並加入遊戲,然後在 PC 或控制台上繼續未完成的遊戲。因此,輸入在您的跨平台開發計劃中尤為重要。

為了簡化這個過程,Roblox 提供了 輸入動作系統,用於定義動作,例如「跳躍」、「衝刺」或「射擊」,並為多種硬體輸入設置綁定來驅動這些動作。這讓您不必考慮所有硬體輸入的技術細節,僅需定義哪些輸入能執行哪些動作。

輸入類型檢測

在跨平台開發中,確定並響應玩家使用的主要輸入類型是重要的,通常是為了確保 UI 元素 如螢幕上的按鈕和菜單能在各種設備上良好運行。

例如,觸控啟用的設備假設觸控是默認輸入,並且可能會出現觸控按鈕來進行動作,但如果玩家連接了額外的藍牙鍵盤/滑鼠或遊戲手柄,則可以假設他們希望將其切換為主要輸入類型,並可能使用觸控作為螢幕 UI 的備用輸入。只讀的 UserInputService.PreferredInput 屬性是一種方便的方法,可以根據預期的玩家行為測試並適應多種設備類型中的多個輸入類型。

PreferredInput 的值隨著內建設備輸入和玩家最近與連接的遊戲手柄或鍵盤/滑鼠的互動而變化。示例包括:

真實世界場景PreferredInput
玩家正在使用沒有其他連接輸入設備的手機;輸入類型無法更改。Touch
玩家正在使用一個連接了藍牙鍵盤和滑鼠的移動設備,但沒有連接遊戲手柄。KeyboardAndMouse
玩家正在使用一個連接了藍牙遊戲手柄的平板電腦,但沒有連接鍵盤或滑鼠。Gamepad
玩家在連接了藍牙鍵盤和滑鼠的 Xbox 或 PlayStation 上,最近與鍵盤或滑鼠互動。KeyboardAndMouse
玩家在連接了遊戲手柄的 Windows 或 Mac PC 上,最近與遊戲手柄互動。Gamepad

以下的 LocalScript 是一個範本,用於初步檢測首選輸入並在遊戲過程中響應變化。

首選輸入檢測

local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- 玩家在沒有其他可用/連接輸入類型的觸控設備上
print("觸控")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- 玩家已連接或最近與遊戲手柄互動
print("遊戲手柄")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- 玩家已連接或最近與鍵盤或滑鼠互動
print("鍵盤和滑鼠")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)

預設綁定

Roblox 提供了默認的輸入綁定,以用於移動、相機控制和基本環境互動 — Roblox 玩家對這些控制非常熟悉,因此您僅應在特定情況下覆蓋它們。還要注意,保留的輸入無法被覆蓋,並將始終按照其預期目的運作。

動作鼠標/鍵盤遊戲手把觸控
打開 Roblox 菜單Esc開始 按鈕 (ButtonStart)不適用
開發者控制台F9不適用不適用
全螢幕模式 (Windows)
顯示桌面 (Mac)
F11不適用不適用
錄製視頻 (Windows)F12不適用不適用
截取屏幕PrintScreen不適用不適用
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。