Wejście Myszki i Klawiatury

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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:

OpcjaOpis
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 do
task.wait(2)
UserInputService.MouseIconEnabled = false
task.wait(2)
UserInputService.MouseIconEnabled = true
end

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ściaAkcja
WIdź do przodu
Swstecz
APrzenieś lewo
DPrzenieś 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 IOZakręć kamerę w górę lub w dół
Przesunięcie sięWłącz opcję zatrzymania myszy, jeśli EnableMouseLockOption jest włączone