Duży odsetek sesji Robloxa jest rozgrywany na urządzeniach z myszką i klawiaturą, dlatego ważne jest, aby wspierać te wejścia przy projektowaniu gry dla szerokiej publiczności.
Aby uprościć wejścia cross‑platform, w tym mysz/klawiaturę, Roblox zapewnia System Akcji Wejściowych do definiowania akcji takich jak "skok", "bieganie" czy "strzelanie" oraz do ustawiania przypisań dla wielu wejść sprzętowych, aby wykonywać te akcje.
Roblox wspiera również ogólne wejścia z myszki/klawiatury za pomocą zdarzeń UserInputService takich jak InputBegan i InputEnded oraz metod takich jak IsKeyDown(), aby sprawdzić, czy dany klawisz jest wciśnięty na klawiaturze.
Wykrywanie typu wejścia
W rozwijaniu aplikacji cross‑platform ważne jest, aby określić i zareagować na typ PreferredInput, którego używa gracz, zazwyczaj po to, aby upewnić się, że elementy UI takie jak przyciski i menu na ekranie działają elegancko oraz wspierają interakcję między urządzeniami.
Na przykład PC lub laptop zakłada, że mysz/klawiatura są domyślnym wejściem, ale gracz może zdecydować się podłączyć gamepad bluetooth. W takim przypadku mysz/klawiatura pozostaje ważnym wejściem, ale można założyć, że gracz chce przełączyć się na podłączony gamepad jako główny typ wejścia.
Zobacz wykrywanie typu wejścia po więcej informacji.
Ogólne wejście z myszki/klawiatury
Poza Systemem Akcji Wejściowych, możesz zbierać wejścia z myszki i klawiatury za pomocą UserInputService. Poniższy LocalScript, umieszczony w StarterPlayerScripts, zbiera fazy rozpoczęcia i zakończenia kliknięć klawiszy i myszy i drukuje wynik w oknie Output.
LocalScript - Wyjście zaczynania/koni końca klawiszy/myszy
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(inputObject, processedEvent)
-- Zwróć, jeśli inny skrypt już przetworzył wejście
if processedEvent then return end
print(inputObject.KeyCode.Name, "zaczęło się!", inputObject.Position)
end
local function onInputEnded(inputObject, processedEvent)
-- Zwróć, jeśli inny skrypt już przetworzył wejście
if processedEvent then return end
print(inputObject.KeyCode.Name, "zakończone!", inputObject.Position)
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)
Ikona myszy
Możesz dostosować wygląd i zachowanie ikony myszy gracza w swojej grze, aby stworzyć spójny styl we wszystkich swoich elementach UI. Obejmuje to tymczasową zmianę ikony myszy gracza w określonych okolicznościach, na przykład podczas najeżdżania na przycisk.
Możesz zmienić ikonę myszy gracza w LocalScript, ustawiając właściwość MouseIcon w UserInputService na własny identyfikator zasobu Robloxa. Na przykład, poniższy LocalScript zmienia domyślną ikonę myszy gracza na okrąg z niebieską kropką w środku.
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"