InputObject

Pokaż przestarzałe

*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.

Brak możliwości tworzenia

Przedmiot wejściowy reprezentuje pojedyncze wejście użytkownika, takie jak ruch myszy, dotknięcia, naciśnięcia klawiszy i więcej. Tworzy się go, gdy rozpoczyna się wejście.

Właściwości tego obiektu różnią się w zależności od UserInputType.Każdy rodzaj wejścia przejdzie różne zmiany w swojej UserInputState .Podczas życia wejścia mogą się zmienić inne właściwości, które dalej opisują wejście, takie jak Position i Delta.Przyciski klawiatury i gamepada będą miały ustawiaćwłaściwość KeyCode.

Po utworzeniu na początku wejścia ten sam obiekt trwa i jest aktualizowany do czasu zakończenia wejścia.W wynikmożesz śledzić zmiany obiektu za pomocą wydarzenia Changed, gdy użytkownik zmienia wejście w kwestii.Możesz również umieścić te obiekty na liście aktywnych ścieżek wejściowych i wejść w interakcję z obiektem po jego utworzeniu przez wydarzenie takie jak UserInputService.InputBegan.Jest to głównie przydatne dla wydarzeń dotykowych, ponieważ każdy punkt dotyku będzie miał oddzielny obiekt wejściowy.

Zobacz także:

  • ContextActionService , który przekazuje obiekt wejściowy do funkcji obsługi akcji bound
  • UserInputService , których wydarzenia i funkcje często używają InputObject
  • GuiObject , których wydarzenia związane z wejściem użytkownika wykorzystują obiekt wejściowy InputObject

Przykłady kodu

Poniższy przykład pokazuje jeden z wielu przykładów użycia obsługi wejścia użytkownika z InputBegan w zależności od jego typu.

Przetwarzanie wejścia Began

-- Aby skorzystać z wydarzenia InputBegan, należy używać usługi UserInputService
local UserInputService = game:GetService("UserInputService")
-- Próbna funkcja dostarczająca wiele przypadków użycia dla różnych rodzajów wejść użytkownika
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)

Podsumowanie

Właściwości

Właściwości

Delta

Odczyt równoległy

A Vector3 opisująca Delta (zmiana) między ruchami myszy/joysticka.

Jest to przydatne, gdy używany jest z wejściem position , aby śledzić pozycję i ruch myszy/joysticka użytkownika, tak jak przy tworzeniu niestandardowych skryptów ruchowych lub kamery.Rozważ śledzenie zmian w obiekcie wejściowym za pomocą wydarzenia Object.Changed lub gdy użytkownik wprowadza zmiany za pomocą wydarzeń takich jak UserInputService.InputChanged i GuiObject.InputChanged.

Zauważ, że odpowiadające (lewe klikać) i (prawe klikać) dostarczone z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powAby uzyskać zaktualizowane delty dla wpisów myszy, musisz zamiast tego odwołać się do InputObject z powrotem do wezwania z powrotem z InputChanged , lub wezwać GetMouseDelta() .Jednak każdy InputObjects odpowiadający wejściom dotykowym będzie miał swoją deltę i pozycję aktualizowaną co każdą ramę w ciągu całego życia.

Zobacz także:

Przykłady kodu

Ten przykład tworzy skrypt lornetki, który zmniejsza FieldOfView() i MouseDeltaSensitivity() gracza, gdy gracz z MouseEnabled() ma lewe kliknięcia myszy.Skrypt wskazuje również kierunek ruchu gracza Camera w kierunku pozycji świata Vector3 kliknięcia myszy.

Kiedy gracz ponownie kliknie myszą, kamera gracza powraca do niestandardowej Enum.CameraType z tym samym polem widzenia i CFrame() tak jak przed tym, jak gracz przybliżył się za pomocą skryptu.

Podczas gdy gracz używa lornetki, skrypt blokuje mysz gracza w centrum ekranu, ustawiając gracza MouseBehavior() na BlokujCentrum.Kamera gracza porusza się, gdy gracz przesuwa mysz zgodnie z właściwością InputObject.Delta, przekazaną przez InputChanged(), wskazującą zmianę pozycji na ekranie Vector2 myszy.

Aby ten przykład działał zgodnie z oczekiwaniem, należy go umieścić w LocalScript.

Stwórz skrypt lornetki

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.CharacterAdded:Wait()
local head = character:WaitForChild("Head", false)
local mouse = player:GetMouse()
local zoomed = false
local camera = game.Workspace.CurrentCamera
local target = nil
local originalProperties = {
FieldOfView = nil,
_CFrame = nil,
MouseBehavior = nil,
MouseDeltaSensitivity = nil,
}
local AngleX, TargetAngleX = 0, 0
local AngleY, TargetAngleY = 0, 0
-- Zresetuj kamerę powrotem do CFrame i FieldOfView przed przysunięciem
local function ResetCamera()
target = nil
camera.CameraType = Enum.CameraType.Custom
camera.CFrame = originalProperties._CFrame
camera.FieldOfView = originalProperties.FieldOfView
UserInputService.MouseBehavior = originalProperties.MouseBehavior
UserInputService.MouseDeltaSensitivity = originalProperties.MouseDeltaSensitivity
end
local function ZoomCamera()
-- Pozwól, aby kamera została zmieniona przez skrypt
camera.CameraType = Enum.CameraType.Scriptable
-- Przechowywanie właściwości kamery przed przysunięciem
originalProperties._CFrame = camera.CFrame
originalProperties.FieldOfView = camera.FieldOfView
originalProperties.MouseBehavior = UserInputService.MouseBehavior
originalProperties.MouseDeltaSensitivity = UserInputService.MouseDeltaSensitivity
-- Przybliż kamera
target = mouse.Hit.Position
local eyesight = head.Position
camera.CFrame = CFrame.new(eyesight, target)
camera.Focus = CFrame.new(target)
camera.FieldOfView = 10
-- Zablokuj i spowolnij mysz
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
UserInputService.MouseDeltaSensitivity = 1
-- Zresetuj kąty przymiotu
AngleX, TargetAngleX = 0, 0
AngleY, TargetAngleY = 0, 0
end
-- Przełącz zoom/odbicie kamery
local function MouseClick()
if zoomed then
-- Odpręż kamerę
ResetCamera()
else
-- Przybliż kamerę
ZoomCamera()
end
zoomed = not zoomed
end
local function MouseMoved(input)
if zoomed then
local sensitivity = 0.6 -- wszystko powyżej sprawiłoby, że poszukiwanie w górę i w dół będzie trudniejsze; zalecam wszystko pomiędzy 0~1
local smoothness = 0.05 -- polecaj coś pomiędzy 0~1
local delta = Vector2.new(input.Delta.x / sensitivity, input.Delta.y / sensitivity) * smoothness
local X = TargetAngleX - delta.y
local Y = TargetAngleY - delta.x
TargetAngleX = (X >= 80 and 80) or (X <= -80 and -80) or X
TargetAngleY = (Y >= 80 and 80) or (Y <= -80 and -80) or Y
AngleX = AngleX + (TargetAngleX - AngleX) * 0.35
AngleY = AngleY + (TargetAngleY - AngleY) * 0.15
camera.CFrame = CFrame.new(head.Position, target)
* CFrame.Angles(0, math.rad(AngleY), 0)
* CFrame.Angles(math.rad(AngleX), 0, 0)
end
end
local function InputBegan(input, _gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
MouseClick()
end
end
local function InputChanged(input, _gameProcessedEvent)
if input.UserInputType == Enum.UserInputType.MouseMovement then
MouseMoved(input)
end
end
if UserInputService.MouseEnabled then
UserInputService.InputBegan:Connect(InputBegan)
UserInputService.InputChanged:Connect(InputChanged)
end
Odczyt równoległy

Zawiera Enum.KeyCode enumerację, która opisuje, jakiego rodzaju wejście zostało użyte.Dla typów wejść takich jak klawiatura opisuje to, który klawisz został naciśnięty.Dla wejść takich jak mysz nie dostarcza to dodatkowych informacji.

Enumery


<th>Wartość</th>
<th>Opis</th>
</tr>
</thead>
<tr>
<td>
<b>Nieznany</b>
</td>
<td>0</td>
<td />
</tr>
<tr>
<td>
<b>Powrót do przodu</b>
</td>
<td>8</td>
<td />
</tr>
<tr>
<td>
<b>Zakładka</b>
</td>
<td>9</td>
<td />
</tr>
<tr>
<td>
<b>Wyczyść</b>
</td>
<td>12</td>
<td />
</tr>
<tr>
<td>
<b>Powrót</b>
</td>
<td>13</td>
<td />
</tr>
<tr>
<td>
<b>Przerwa</b>
</td>
<td>19</td>
<td />
</tr>
<tr>
<td>
<b>Ucieczka</b>
</td>
<td>27</td>
<td />
</tr>
<tr>
<td>
<b>Przestrzeń</b>
</td>
<td>32</td>
<td />
</tr>
<tr>
<td>
<b>CytowanePodwójne</b>
</td>
<td>34</td>
<td />
</tr>
<tr>
<td>
<b>Hasz</b>
</td>
<td>35</td>
<td />
</tr>
<tr>
<td>
<b>Dolar</b>
</td>
<td>36</td>
<td />
</tr>
<tr>
<td>
<b>Procent</b>
</td>
<td>37</td>
<td />
</tr>
<tr>
<td>
<b>Łącznikiem</b>
</td>
<td>38</td>
<td />
</tr>
<tr>
<td>
<b>Cytat</b>
</td>
<td>39</td>
<td />
</tr>
<tr>
<td>
<b>Lewe parentetyczne</b>
</td>
<td>40</td>
<td />
</tr>
<tr>
<td>
<b>Prawe parentetyczne</b>
</td>
<td>41</td>
<td />
</tr>
<tr>
<td>
<b>Gwiazda</b>
</td>
<td>42</td>
<td />
</tr>
<tr>
<td>
<b>Dodatkowe</b>
</td>
<td>43</td>
<td />
</tr>
<tr>
<td>
<b>Komacja</b>
</td>
<td>44</td>
<td />
</tr>
<tr>
<td>
<b>Ujemny</b>
</td>
<td>45</td>
<td />
</tr>
<tr>
<td>
<b>Okres</b>
</td>
<td>46</td>
<td />
</tr>
<tr>
<td>
<b>Cięcie</b>
</td>
<td>47</td>
<td />
</tr>
<tr>
<td>
<b>Zero</b>
</td>
<td>48</td>
<td />
</tr>
<tr>
<td>
<b>Jeden</b>
</td>
<td>49</td>
<td />
</tr>
<tr>
<td>
<b>Dwie</b>
</td>
<td>50</td>
<td />
</tr>
<tr>
<td>
<b>Trzy</b>
</td>
<td>51</td>
<td />
</tr>
<tr>
<td>
<b>Cztery</b>
</td>
<td>52</td>
<td />
</tr>
<tr>
<td>
<b>Pięć</b>
</td>
<td>53</td>
<td />
</tr>
<tr>
<td>
<b>Sześć</b>
</td>
<td>54</td>
<td />
</tr>
<tr>
<td>
<b>Siedem</b>
</td>
<td>55</td>
<td />
</tr>
<tr>
<td>
<b>Osiem</b>
</td>
<td>56</td>
<td />
</tr>
<tr>
<td>
<b>Dziewięć</b>
</td>
<td>57</td>
<td />
</tr>
<tr>
<td>
<b>Kolonka</b>
</td>
<td>58</td>
<td />
</tr>
<tr>
<td>
<b>Przecinek</b>
</td>
<td>59</td>
<td />
</tr>
<tr>
<td>
<b>Mniej niż</b>
</td>
<td>60</td>
<td />
</tr>
<tr>
<td>
<b>Równość</b>
</td>
<td>61</td>
<td />
</tr>
<tr>
<td>
<b>Większe niż</b>
</td>
<td>62</td>
<td />
</tr>
<tr>
<td>
<b>Pytanie</b>
</td>
<td>63</td>
<td />
</tr>
<tr>
<td>
<b>At</b>
</td>
<td>64</td>
<td />
</tr>
<tr>
<td>
<b>Lewe skrzydło</b>
</td>
<td>91</td>
<td />
</tr>
<tr>
<td>
<b>Cofanie się do tyłu</b>
</td>
<td>92</td>
<td />
</tr>
<tr>
<td>
<b>Prawy nawias</b>
</td>
<td>93</td>
<td />
</tr>
<tr>
<td>
<b>Pielęgnacja</b>
</td>
<td>94</td>
<td />
</tr>
<tr>
<td>
<b>Podświetlenie</b>
</td>
<td>95</td>
<td />
</tr>
<tr>
<td>
<b>Cytat</b>
</td>
<td>96</td>
<td />
</tr>
<tr>
<td>
<b>A</b>
</td>
<td>97</td>
<td />
</tr>
<tr>
<td>
<b>B</b>
</td>
<td>98</td>
<td />
</tr>
<tr>
<td>
<b>C</b>
</td>
<td>99</td>
<td />
</tr>
<tr>
<td>
<b>D</b>
</td>
<td>100</td>
<td />
</tr>
<tr>
<td>
<b>E</b>
</td>
<td>101</td>
<td />
</tr>
<tr>
<td>
<b>F</b>
</td>
<td>102</td>
<td />
</tr>
<tr>
<td>
<b>G</b>
</td>
<td>103</td>
<td />
</tr>
<tr>
<td>
<b>H</b>
</td>
<td>104</td>
<td />
</tr>
<tr>
<td>
<b>I</b>
</td>
<td>105</td>
<td />
</tr>
<tr>
<td>
<b>J</b>
</td>
<td>106</td>
<td />
</tr>
<tr>
<td>
<b>K</b>
</td>
<td>107</td>
<td />
</tr>
<tr>
<td>
<b>L</b>
</td>
<td>108</td>
<td />
</tr>
<tr>
<td>
<b>M</b>
</td>
<td>109</td>
<td />
</tr>
<tr>
<td>
<b>N</b>
</td>
<td>110</td>
<td />
</tr>
<tr>
<td>
<b>O</b>
</td>
<td>111</td>
<td />
</tr>
<tr>
<td>
<b>P</b>
</td>
<td>112</td>
<td />
</tr>
<tr>
<td>
<b>Q</b>
</td>
<td>113</td>
<td />
</tr>
<tr>
<td>
<b>R</b>
</td>
<td>114</td>
<td />
</tr>
<tr>
<td>
<b>S</b>
</td>
<td>115</td>
<td />
</tr>
<tr>
<td>
<b>T</b>
</td>
<td>116</td>
<td />
</tr>
<tr>
<td>
<b>U</b>
</td>
<td>117</td>
<td />
</tr>
<tr>
<td>
<b>V</b>
</td>
<td>118</td>
<td />
</tr>
<tr>
<td>
<b>W</b>
</td>
<td>119</td>
<td />
</tr>
<tr>
<td>
<b>X</b>
</td>
<td>120</td>
<td />
</tr>
<tr>
<td>
<b>Y</b>
</td>
<td>121</td>
<td />
</tr>
<tr>
<td>
<b>Z</b>
</td>
<td>122</td>
<td />
</tr>
<tr>
<td>
<b>Lewe kręcone</b>
</td>
<td>123</td>
<td />
</tr>
<tr>
<td>
<b>Rura</b>
</td>
<td>124</td>
<td />
</tr>
<tr>
<td>
<b>Prawy Kręcony</b>
</td>
<td>125</td>
<td />
</tr>
<tr>
<td>
<b>Tylko</b>
</td>
<td>126</td>
<td />
</tr>
<tr>
<td>
<b>Usuń</b>
</td>
<td>127</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaZero</b>
</td>
<td>256</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaOne</b>
</td>
<td>257</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura dwa</b>
</td>
<td>258</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura trzy</b>
</td>
<td>259</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura czterech</b>
</td>
<td>260</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaPięć</b>
</td>
<td>261</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaSześć</b>
</td>
<td>262</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaSiedem</b>
</td>
<td>263</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura osiem</b>
</td>
<td>264</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura dziewięć</b>
</td>
<td>265</td>
<td />
</tr>
<tr>
<td>
<b>Okres klawiatury</b>
</td>
<td>266</td>
<td />
</tr>
<tr>
<td>
<b>Rozdzielanie klawiatury</b>
</td>
<td>267</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaMultiplikuje</b>
</td>
<td>268</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaMinus</b>
</td>
<td>269</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaPlus</b>
</td>
<td>270</td>
<td />
</tr>
<tr>
<td>
<b>KlawiaturaEnter</b>
</td>
<td>271</td>
<td />
</tr>
<tr>
<td>
<b>Klawiatura równa się</b>
</td>
<td>272</td>
<td />
</tr>
<tr>
<td>
<b>Up</b>
</td>
<td>273</td>
<td />
</tr>
<tr>
<td>
<b>W dół</b>
</td>
<td>274</td>
<td />
</tr>
<tr>
<td>
<b>Prawo</b>
</td>
<td>275</td>
<td />
</tr>
<tr>
<td>
<b>Lewo</b>
</td>
<td>276</td>
<td />
</tr>
<tr>
<td>
<b>Wstaw</b>
</td>
<td>277</td>
<td />
</tr>
<tr>
<td>
<b>Strona główna</b>
</td>
<td>278</td>
<td />
</tr>
<tr>
<td>
<b>Koniec</b>
</td>
<td>279</td>
<td />
</tr>
<tr>
<td>
<b>Strona w górę</b>
</td>
<td>280</td>
<td />
</tr>
<tr>
<td>
<b>Strona w dół</b>
</td>
<td>281</td>
<td />
</tr>
<tr>
<td>
<b>LewoShift</b>
</td>
<td>304</td>
<td />
</tr>
<tr>
<td>
<b>Przesunięcie w prawo</b>
</td>
<td>303</td>
<td />
</tr>
<tr>
<td>
<b>Meta lewej</b>
</td>
<td>310</td>
<td />
</tr>
<tr>
<td>
<b>PrawoMeta</b>
</td>
<td>309</td>
<td />
</tr>
<tr>
<td>
<b>LeweAlt</b>
</td>
<td>308</td>
<td />
</tr>
<tr>
<td>
<b>PrawoAlt</b>
</td>
<td>307</td>
<td />
</tr>
<tr>
<td>
<b>Lewe sterowanie</b>
</td>
<td>306</td>
<td />
</tr>
<tr>
<td>
<b>Prawy kontroler</b>
</td>
<td>305</td>
<td />
</tr>
<tr>
<td>
<b>Blokada klawiszu</b>
</td>
<td>301</td>
<td />
</tr>
<tr>
<td>
<b>Blokada liczby</b>
</td>
<td>300</td>
<td />
</tr>
<tr>
<td>
<b>Blokada przewijania</b>
</td>
<td>302</td>
<td />
</tr>
<tr>
<td>
<b>LeweSuper</b>
</td>
<td>311</td>
<td />
</tr>
<tr>
<td>
<b>PrawySuper</b>
</td>
<td>312</td>
<td />
</tr>
<tr>
<td>
<b>Tryb</b>
</td>
<td>313</td>
<td />
</tr>
<tr>
<td>
<b>Skomponuj</b>
</td>
<td>314</td>
<td />
</tr>
<tr>
<td>
<b>Pomocy</b>
</td>
<td>315</td>
<td />
</tr>
<tr>
<td>
<b>Drukuj</b>
</td>
<td>316</td>
<td />
</tr>
<tr>
<td>
<b>SysReq</b>
</td>
<td>317</td>
<td />
</tr>
<tr>
<td>
<b>Złamanie</b>
</td>
<td>318</td>
<td />
</tr>
<tr>
<td>
<b>Menu</b>
</td>
<td>319</td>
<td />
</tr>
<tr>
<td>
<b>Moc</b>
</td>
<td>320</td>
<td />
</tr>
<tr>
<td>
<b>Eurowe</b>
</td>
<td>321</td>
<td />
</tr>
<tr>
<td>
<b>Odwróć</b>
</td>
<td>322</td>
<td />
</tr>
<tr>
<td>
<b>F1</b>
</td>
<td>282</td>
<td />
</tr>
<tr>
<td>
<b>F2</b>
</td>
<td>283</td>
<td />
</tr>
<tr>
<td>
<b>F3</b>
</td>
<td>284</td>
<td />
</tr>
<tr>
<td>
<b>F4</b>
</td>
<td>285</td>
<td />
</tr>
<tr>
<td>
<b>F5</b>
</td>
<td>286</td>
<td />
</tr>
<tr>
<td>
<b>F6</b>
</td>
<td>287</td>
<td />
</tr>
<tr>
<td>
<b>F7</b>
</td>
<td>288</td>
<td />
</tr>
<tr>
<td>
<b>F8</b>
</td>
<td>289</td>
<td />
</tr>
<tr>
<td>
<b>F9</b>
</td>
<td>290</td>
<td />
</tr>
<tr>
<td>
<b>F10</b>
</td>
<td>291</td>
<td />
</tr>
<tr>
<td>
<b>F11</b>
</td>
<td>292</td>
<td />
</tr>
<tr>
<td>
<b>F12</b>
</td>
<td>293</td>
<td />
</tr>
<tr>
<td>
<b>F13</b>
</td>
<td>294</td>
<td />
</tr>
<tr>
<td>
<b>F14</b>
</td>
<td>295</td>
<td />
</tr>
<tr>
<td>
<b>F15</b>
</td>
<td>296</td>
<td />
</tr>
<tr>
<td>
<b>Świat0</b>
</td>
<td>160</td>
<td />
</tr>
<tr>
<td>
<b>Świat1</b>
</td>
<td>161</td>
<td />
</tr>
<tr>
<td>
<b>Świat2</b>
</td>
<td>162</td>
<td />
</tr>
<tr>
<td>
<b>Świat3</b>
</td>
<td>163</td>
<td />
</tr>
<tr>
<td>
<b>Świat4</b>
</td>
<td>164</td>
<td />
</tr>
<tr>
<td>
<b>Świat5</b>
</td>
<td>165</td>
<td />
</tr>
<tr>
<td>
<b>Świat6</b>
</td>
<td>166</td>
<td />
</tr>
<tr>
<td>
<b>Świat7</b>
</td>
<td>167</td>
<td />
</tr>
<tr>
<td>
<b>Świat8</b>
</td>
<td>168</td>
<td />
</tr>
<tr>
<td>
<b>Świat9</b>
</td>
<td>169</td>
<td />
</tr>
<tr>
<td>
<b>Świat10</b>
</td>
<td>170</td>
<td />
</tr>
<tr>
<td>
<b>Świat11</b>
</td>
<td>171</td>
<td />
</tr>
<tr>
<td>
<b>Świat12</b>
</td>
<td>172</td>
<td />
</tr>
<tr>
<td>
<b>Świat13</b>
</td>
<td>173</td>
<td />
</tr>
<tr>
<td>
<b>Świat14</b>
</td>
<td>174</td>
<td />
</tr>
<tr>
<td>
<b>Świat15</b>
</td>
<td>175</td>
<td />
</tr>
<tr>
<td>
<b>Świat16</b>
</td>
<td>176</td>
<td />
</tr>
<tr>
<td>
<b>Świat17</b>
</td>
<td>177</td>
<td />
</tr>
<tr>
<td>
<b>Świat18</b>
</td>
<td>178</td>
<td />
</tr>
<tr>
<td>
<b>Świat19</b>
</td>
<td>179</td>
<td />
</tr>
<tr>
<td>
<b>Świat20</b>
</td>
<td>180</td>
<td />
</tr>
<tr>
<td>
<b>Świat21</b>
</td>
<td>181</td>
<td />
</tr>
<tr>
<td>
<b>Świat22</b>
</td>
<td>182</td>
<td />
</tr>
<tr>
<td>
<b>Świat23</b>
</td>
<td>183</td>
<td />
</tr>
<tr>
<td>
<b>Świat24</b>
</td>
<td>184</td>
<td />
</tr>
<tr>
<td>
<b>Świat25</b>
</td>
<td>185</td>
<td />
</tr>
<tr>
<td>
<b>Świat26</b>
</td>
<td>186</td>
<td />
</tr>
<tr>
<td>
<b>Świat27</b>
</td>
<td>187</td>
<td />
</tr>
<tr>
<td>
<b>Świat28</b>
</td>
<td>188</td>
<td />
</tr>
<tr>
<td>
<b>Świat29</b>
</td>
<td>189</td>
<td />
</tr>
<tr>
<td>
<b>Świat30</b>
</td>
<td>190</td>
<td />
</tr>
<tr>
<td>
<b>Świat31</b>
</td>
<td>191</td>
<td />
</tr>
<tr>
<td>
<b>Świat32</b>
</td>
<td>192</td>
<td />
</tr>
<tr>
<td>
<b>Świat33</b>
</td>
<td>193</td>
<td />
</tr>
<tr>
<td>
<b>Świat34</b>
</td>
<td>194</td>
<td />
</tr>
<tr>
<td>
<b>Świat35</b>
</td>
<td>195</td>
<td />
</tr>
<tr>
<td>
<b>Świat36</b>
</td>
<td>196</td>
<td />
</tr>
<tr>
<td>
<b>Świat37</b>
</td>
<td>197</td>
<td />
</tr>
<tr>
<td>
<b>Świat38</b>
</td>
<td>198</td>
<td />
</tr>
<tr>
<td>
<b>Świat39</b>
</td>
<td>199</td>
<td />
</tr>
<tr>
<td>
<b>Świat40</b>
</td>
<td>200</td>
<td />
</tr>
<tr>
<td>
<b>Świat41</b>
</td>
<td>201</td>
<td />
</tr>
<tr>
<td>
<b>Świat42</b>
</td>
<td>202</td>
<td />
</tr>
<tr>
<td>
<b>Świat43</b>
</td>
<td>203</td>
<td />
</tr>
<tr>
<td>
<b>Świat44</b>
</td>
<td>204</td>
<td />
</tr>
<tr>
<td>
<b>Świat45</b>
</td>
<td>205</td>
<td />
</tr>
<tr>
<td>
<b>Świat46</b>
</td>
<td>206</td>
<td />
</tr>
<tr>
<td>
<b>Świat47</b>
</td>
<td>207</td>
<td />
</tr>
<tr>
<td>
<b>Świat48</b>
</td>
<td>208</td>
<td />
</tr>
<tr>
<td>
<b>Świat49</b>
</td>
<td>209</td>
<td />
</tr>
<tr>
<td>
<b>Świat50</b>
</td>
<td>210</td>
<td />
</tr>
<tr>
<td>
<b>Świat51</b>
</td>
<td>211</td>
<td />
</tr>
<tr>
<td>
<b>Świat52</b>
</td>
<td>212</td>
<td />
</tr>
<tr>
<td>
<b>Świat53</b>
</td>
<td>213</td>
<td />
</tr>
<tr>
<td>
<b>Świat54</b>
</td>
<td>214</td>
<td />
</tr>
<tr>
<td>
<b>Świat55</b>
</td>
<td>215</td>
<td />
</tr>
<tr>
<td>
<b>Świat56</b>
</td>
<td>216</td>
<td />
</tr>
<tr>
<td>
<b>Świat57</b>
</td>
<td>217</td>
<td />
</tr>
<tr>
<td>
<b>Świat58</b>
</td>
<td>218</td>
<td />
</tr>
<tr>
<td>
<b>Świat59</b>
</td>
<td>219</td>
<td />
</tr>
<tr>
<td>
<b>Świat60</b>
</td>
<td>220</td>
<td />
</tr>
<tr>
<td>
<b>Świat61</b>
</td>
<td>221</td>
<td />
</tr>
<tr>
<td>
<b>Świat62</b>
</td>
<td>222</td>
<td />
</tr>
<tr>
<td>
<b>Świat63</b>
</td>
<td>223</td>
<td />
</tr>
<tr>
<td>
<b>Świat64</b>
</td>
<td>224</td>
<td />
</tr>
<tr>
<td>
<b>Świat65</b>
</td>
<td>225</td>
<td />
</tr>
<tr>
<td>
<b>Świat66</b>
</td>
<td>226</td>
<td />
</tr>
<tr>
<td>
<b>Świat67</b>
</td>
<td>227</td>
<td />
</tr>
<tr>
<td>
<b>Świat68</b>
</td>
<td>228</td>
<td />
</tr>
<tr>
<td>
<b>Świat69</b>
</td>
<td>229</td>
<td />
</tr>
<tr>
<td>
<b>Świat70</b>
</td>
<td>230</td>
<td />
</tr>
<tr>
<td>
<b>Świat71</b>
</td>
<td>231</td>
<td />
</tr>
<tr>
<td>
<b>Świat72</b>
</td>
<td>232</td>
<td />
</tr>
<tr>
<td>
<b>Świat73</b>
</td>
<td>233</td>
<td />
</tr>
<tr>
<td>
<b>Świat74</b>
</td>
<td>234</td>
<td />
</tr>
<tr>
<td>
<b>Świat75</b>
</td>
<td>235</td>
<td />
</tr>
<tr>
<td>
<b>Świat76</b>
</td>
<td>236</td>
<td />
</tr>
<tr>
<td>
<b>Świat77</b>
</td>
<td>237</td>
<td />
</tr>
<tr>
<td>
<b>Świat78</b>
</td>
<td>238</td>
<td />
</tr>
<tr>
<td>
<b>Świat79</b>
</td>
<td>239</td>
<td />
</tr>
<tr>
<td>
<b>Świat80</b>
</td>
<td>240</td>
<td />
</tr>
<tr>
<td>
<b>Świat81</b>
</td>
<td>241</td>
<td />
</tr>
<tr>
<td>
<b>Świat82</b>
</td>
<td>242</td>
<td />
</tr>
<tr>
<td>
<b>Świat83</b>
</td>
<td>243</td>
<td />
</tr>
<tr>
<td>
<b>Świat84</b>
</td>
<td>244</td>
<td />
</tr>
<tr>
<td>
<b>Świat85</b>
</td>
<td>245</td>
<td />
</tr>
<tr>
<td>
<b>Świat86</b>
</td>
<td>246</td>
<td />
</tr>
<tr>
<td>
<b>Świat87</b>
</td>
<td>247</td>
<td />
</tr>
<tr>
<td>
<b>Świat88</b>
</td>
<td>248</td>
<td />
</tr>
<tr>
<td>
<b>Świat89</b>
</td>
<td>249</td>
<td />
</tr>
<tr>
<td>
<b>Świat90</b>
</td>
<td>250</td>
<td />
</tr>
<tr>
<td>
<b>Świat91</b>
</td>
<td>251</td>
<td />
</tr>
<tr>
<td>
<b>Świat92</b>
</td>
<td>252</td>
<td />
</tr>
<tr>
<td>
<b>Świat93</b>
</td>
<td>253</td>
<td />
</tr>
<tr>
<td>
<b>Świat94</b>
</td>
<td>254</td>
<td />
</tr>
<tr>
<td>
<b>Świat95</b>
</td>
<td>255</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskX</b>
</td>
<td>1000</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskY</b>
</td>
<td>1001</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskA</b>
</td>
<td>1002</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskB</b>
</td>
<td>1003</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk R1</b>
</td>
<td>1004</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskL1</b>
</td>
<td>1005</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk R2</b>
</td>
<td>1006</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskL2</b>
</td>
<td>1007</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskR3</b>
</td>
<td>1008</td>
<td />
</tr>
<tr>
<td>
<b>PrzyciskL3</b>
</td>
<td>1009</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk Start</b>
</td>
<td>1010</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk wyboru</b>
</td>
<td>1011</td>
<td />
</tr>
<tr>
<td>
<b>DPadLeft</b>
</td>
<td>1012</td>
<td />
</tr>
<tr>
<td>
<b>Prawy DPad</b>
</td>
<td>1013</td>
<td />
</tr>
<tr>
<td>
<b>DPadUp</b>
</td>
<td>1014</td>
<td />
</tr>
<tr>
<td>
<b>DPadDown</b>
</td>
<td>1015</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk palca1</b>
</td>
<td>1016</td>
<td />
</tr>
<tr>
<td>
<b>Przycisk palca2</b>
</td>
<td>1017</td>
</tr>
Nazwa

Zobacz także:

Przykłady kodu

Ten przykład otrzymuje listę gier nawigacyjnych i listę ich wspieranych Enum.KeyCodes.Następnie iteruje przez wspieraną listę KeyCode i wiąże klawisze ButtonX i X z funkcjami, jeśli są one wspierane przez gamepad za pomocą ContextActionService.

Wiązanie wspieranych klawisz klawiatury gry

local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local function actionHandler(actionName, inputState, inputObject)
if inputState == Enum.UserInputState.Begin then
print("Action Handler: " .. actionName)
print(inputObject)
end
-- Ponieważ ta funkcja nie zwraca nic, ten przełącznik będzie
-- „zmyj” wejście, a po nim nie zostanie wezwany żaden inny menedżer akcji
-- ten jeden.
end
local navGamepads = UserInputService:GetNavigationGamepads()
for _, gamepad in pairs(navGamepads) do
local supportedKeyCodes = UserInputService:GetSupportedGamepadKeyCodes(gamepad)
for _, keycode in pairs(supportedKeyCodes) do
if keycode == Enum.KeyCode.ButtonX then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.ButtonX)
end
if keycode == Enum.KeyCode.X then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.X)
end
end
end

Position

Odczyt równoległy

Właściwość ta opisuje wartość pozycyjną Vector3 tej wartości wejściowej.

Dla wpisu myszy i dotyku jest to pozycja ekranu myszy/dotyku, opisana w składnikach X i Y.Wkład zastosowany do elementów interfejsu graficznego (takich jak z paska górnego) jest rozliczany w pozycji.

Dla wejścia koła myszy, komponent Z opisuje, czy koło zostało przesunięte do przodu (1), wstecz (-1) lub wcale (0).

Dla Enum.KeyCode, wskazuje to pozycję Mouse.

Zauważ, że odpowiadające (lewe klikać) i (prawe klikać) dostarczone z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrotem z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powrot z powAby uzyskać zaktualizowane pozycje dla wejść myszy, musisz zamiast tego odwołać się do InputObject z powrotem do wezwania z powrotem z InputChanged , lub wezwać GetMouseLocation() .Jednak każdy InputObjects odpowiadający wejściom dotykowym będzie miał swoją deltę i pozycję aktualizowaną co każdą ramę w ciągu całego życia.

Zobacz także

Przykłady kodu

Poniższy przykład pokazuje jeden z wielu przykładów użycia obsługi wejścia użytkownika z InputBegan w zależności od jego typu.

Przetwarzanie wejścia Began

-- Aby skorzystać z wydarzenia InputBegan, należy używać usługi UserInputService
local UserInputService = game:GetService("UserInputService")
-- Próbna funkcja dostarczająca wiele przypadków użycia dla różnych rodzajów wejść użytkownika
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)

UserInputState

Odczyt równoległy

Stan wpisu użytkownika opisuje stan wpisu wykonywanego, po następującym przepływie w zależności od >.Używa on enum o tej samej nazwie, Enum.UserInputState .Zobacz stronę enum dla listy wszystkich możliwych wartości dla tej właściwości.

Zobacz także:

Przykłady kodu

Ten przykład otrzymuje listę gier nawigacyjnych i listę ich wspieranych Enum.KeyCodes.Następnie iteruje przez wspieraną listę KeyCode i wiąże klawisze ButtonX i X z funkcjami, jeśli są one wspierane przez gamepad za pomocą ContextActionService.

Wiązanie wspieranych klawisz klawiatury gry

local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local function actionHandler(actionName, inputState, inputObject)
if inputState == Enum.UserInputState.Begin then
print("Action Handler: " .. actionName)
print(inputObject)
end
-- Ponieważ ta funkcja nie zwraca nic, ten przełącznik będzie
-- „zmyj” wejście, a po nim nie zostanie wezwany żaden inny menedżer akcji
-- ten jeden.
end
local navGamepads = UserInputService:GetNavigationGamepads()
for _, gamepad in pairs(navGamepads) do
local supportedKeyCodes = UserInputService:GetSupportedGamepadKeyCodes(gamepad)
for _, keycode in pairs(supportedKeyCodes) do
if keycode == Enum.KeyCode.ButtonX then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.ButtonX)
end
if keycode == Enum.KeyCode.X then
ContextActionService:BindAction("SampleAction", actionHandler, false, Enum.KeyCode.X)
end
end
end

UserInputType

Odczyt równoległy

Typ wejścia użytkownika jest właściwością, która opisuje, jakiego rodzaju wejście reprezentuje to InputObject, takie jak mysz, klawiatura, dotyk lub gamepad.Używa on enum o tej samej nazwie, Enum.UserInputType .Zobacz stronę enum dla listy wszystkich możliwych wartości dla tej właściwości.

Zobacz także:

Przykłady kodu

Poniższy przykład pokazuje jeden z wielu przykładów użycia obsługi wejścia użytkownika z InputBegan w zależności od jego typu.

Przetwarzanie wejścia Began

-- Aby skorzystać z wydarzenia InputBegan, należy używać usługi UserInputService
local UserInputService = game:GetService("UserInputService")
-- Próbna funkcja dostarczająca wiele przypadków użycia dla różnych rodzajów wejść użytkownika
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
if gameProcessed then
print("The game engine internally observed this input!")
else
print("The game engine did not internally observe this input!")
end
end)

Metody

IsModifierKeyDown

Parametry

modifierKey: Enum.ModifierKey
Wartość domyślna: ""

Zwroty

Zdarzenia