Duża część sesji Roblox odbywa się na urządzeniach z mikrosamochodem i klawiaturą, więc ważne jest, aby poprawnie wspierał tych wejść, gdy zaprojektujesz doświadczenie dla szerokiej widowni. Gdy jesteś komfortowy z wejściami mikrosamochodu i klawiatury, upewnij się, że Twoje doświadczenie jest kompatybilne z wieloma platformami poprzez ustawienie mobilnego i
Dla udogodnienia Roblox ustawia najczęstsze wpisy na myszy i klawiatury jako dostępne wiązania, które, z wyjątkiem zarezerwowanych wiązań, możesz przeciągnąć.
Generyczny dostęp myszy
Podobnie jak wszystkie wejścia urządzeń, możesz capturing inputów myszy za pomocą UserInputService. Ta usługa zapewnia skalowalny sposób na capturing zmian wpisu i stanu wejścia dla wielu urządzeń jednocześnie. Roblox wspiera również detekcję myszy za pomocą PlayerMouse i ClickDetectors
Dodatkowo możesz użyć ContextActionService , aby zarządzać wieloma akcjami na jednym wejściu w zależności od kontekсту, takich jak używanie narzędzia, gdy jest blisko kamienia lub otwieranie drzwi, gdy jest w budowanie. Zobacz Wpływające na kontekst wejść dla informacji o ustawieniu akcji kontekstowych.
Następny LocalScript, gdy jest umieszczony w StarterPlayerScripts, captures mouse clicks and prints the mouse position to the Output window:
Lokalny Skrypt - Wyjście Myszki i Pozycji
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Najpierw sprawdź, czy „przetworzone wydarzenie” jest prawdziwe
-- To wskazuje, że inny skrypt już przetworzył wejście, więc ten jest ignorowany
if processedEvent then return end
-- Następnie sprawdź, że wejście było wydarzeniem myszy
if inputObject.UserInputType == Enum.UserInputType.MouseButton1 then
print("Left Mouse button was pressed:", inputObject.Position)
elseif inputObject.UserInputType == Enum.UserInputType.MouseButton2 then
print("Right Mouse button was pressed:", inputObject.Position)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Generyczny klawiaturowy wpis
Aby uzyskać dostęp do wydarzeń klawiaturowych, użyj wydarzenia UserInputService.InputEnded, aby śledzić, kiedykolwiek klawiatura lub inne urządzenie końca dotyczy. Podobnie jak wydarzenia myszki, to wydarzenie działa tylko w LocalScript.
Poniższy LocalScript, gdy jest umieszczony w StarterPlayerScripts, drukuje Enum.KeyCode klucza naciśniętego przy oknie 2>Wyjście2>:
local UserInputService = game:GetService("UserInputService")
local function onInputEnded(inputObject, processedEvent)
-- Najpierw sprawdź, czy „przetworzone wydarzenie” jest prawdziwe
-- To wskazuje, że inny skrypt już przetworzył wejście, więc ten jest ignorowany.
if processedEvent then return end
-- Następnie sprawdź, czy wpis był wydarzeniem klawiatury
if inputObject.UserInputType == Enum.UserInputType.Keyboard then
print("A key was released: " .. inputObject.KeyCode.Name)
end
end
UserInputService.InputEnded:Connect(onInputEnded)
Wejście interfejsu
Automatycznie wchodzenie myszy i klawiatury działa z interaktywnymi elementami interfejsu użytkownika, takimi jak TextButtons i ImageButtons, a także TextBoxes, który ujmuje wpisy tekstowe jak pola w formularzu.
Dla więcej informacji na temat tworzenia przycisków i obiektów wejścia tekstowego, zobacz Przyciski i Wejście tekstowe.
Tryby przemieszczania znaków
Możesz ustawić schematy sterowania ruchu myszy i klawiatury dla doświadczeń Roblox, zmieniając wartości StarterPlayer.DevComputerMovementMode do jednej z obserwuje:
Opcja | Opis |
---|---|
Wybór użytkownika | Umożliwia użytkownikom wybór dowolnego schemu kontroli z menu w czasie własnej doświadczenia. Ta opcja jest domyślnie włączona. |
KlawiaturaMouse | Użytkownicy mogą nacisnąć WASD , aby poruszać się i 1>przestrzeń1> , aby skok. Jest to domyślne ustawienie dla użytkowników klawiatury i myszy dla ustawienia 4>Wyboru użytkownika4>. |
Kliknij, aby przenieść | Użytkownicy mogą poruszać się tylko poprzez prawy kliknięcie lokalizacji docelowej. |
Skrypty | Wyłącza wszystkie domyślne sterowanie i pozwala ci łączyć własne sterowanie. |
Ikony Myszy
Możesz dostosować wygląd i zachowanie ikony myszy użytkownika w swoim doświadczeniu, aby stworzyć spójny styl dla wszystkich swoich elementów interfejsu użytkownika. Obejmuje to tymczasowe zmiany ikony myszy użytkownika w określonych sytuacjach, takich jak przytrzymywanie nad przyciskiem.
Zmiana ikony
Możesz zmienić ikę myszy użytkownika w LocalScript poprzez ustawienie właściwości MouseIcon na niebieski krop w środku. Na przykład następujące UserInputService zmienia ikę myszy użytkownika na krąg z niebieskim punktem w ś
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"
Ukrywanie ikony
Możesz ukryć ikonę myszy użytkownika, ustawiając UserInputService.MouseIconEnabled na false w LocalScript. Na przykład, następujący kod przełącza ikonę myszy z widocznej do niewidocznej i z powrotem co dwa sekundy:
local UserInputService = game:GetService("UserInputService")while true dotask.wait(2)UserInputService.MouseIconEnabled = falsetask.wait(2)UserInputService.MouseIconEnabled = trueend
Zablokowanie ikony
Możesz zablokować pozycję ikony ikonana ekranie przy użyciu UserInputService.MouseBehavior z wartością Enum.MouseBehavior lub LockCurrentPosition lub 2> Enum.MouseBehavior|LockCenter2> , a następnie ponownie z wartością 5>Class.UserInputService.MouseBehavior5> .
Jeśli ikona myszy użytkownika jest zablokowana w pozycji, UserInputService.InputChanged nadal się włącza, gdy użytkownik porusza myszką, przesuwając w dystansie, w jakim przesunął myszkę. Na przykład, poniższy kod przykładowy zablokuje ikónę myszy użytkownika po jednej sekundzie, a następnie Studio wydrukuje dawkę myszy, gdy użyt
local UserInputService = game:GetService("UserInputService")
task.wait(5)
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
UserInputService.InputChanged:Connect(function(inputObject)
if inputObject.UserInputType == Enum.UserInputType.MouseMovement then
print("Mouse delta is (" .. tostring(inputObject.Delta.X) .. ", " .. tostring(inputObject.Delta.Y) .. ")")
end
end)
Podstawowe wiązania Roblox
Roblox oferuje domyślne wiązania klawiaturowe dla wszystkich doświadczeń. Są to najczęstsze wpisy używane do ruchu, sterowania kamerą i podstawowej interakcji z środowiskiem. Oprócz zastrzeżonych wiązań możesz użyć ContextActionService , aby stworzyć wiązania platformowe, które priorytetują wiele wiązań do jednej akc
Enum.CoreGuiType cechy, takie jak plecak lub czat , mają listę dodatkowych domyślnych wpisów. Nie możesz zapisać wpisów rezerwowanych, takich jak 0>Esc0> ( menu Roblox) lub Enum.CoreGuiType3> (Konsola Rozwinięta).
Te wiążące są domyślnymi wiążącymi Roblox, ale możesz je przeciągnąć za pomocą niestandardowych skryptów. Większość użytkowników Roblox jest zaznajomiona z tych elementy sterujące, więc powinieneś je przeciągnąć tylko w wyjątkowych przypadkach.
Wejścia | Akcja |
---|---|
W↑ | Idź do przodu |
S↓ | wstecz |
A | Przenieś lewo |
D | Przenieś prawy |
Przestrzeń | Skocz |
←→> | Obróć kamerę w lewo lub prawo |
Praвый przycisk myszy | Gdy jest nacięte, przeciągnięcie myszy przesuwa widok kamerowy |
Koło myszy IO | Zakręć kamerę w górę lub w dół |
Przesunięcie się | Włącz opcję zatrzymania myszy, jeśli EnableMouseLockOption jest włączone |