Jedes Spiel muss Benutzereingaben empfangen, damit die Spieler mit ihrer Umgebung interagieren und diese anzeigen können. Roblox unterstützt nahezu alle Formen von Eingaben, einschließlich Maus/Tastatur, Berührung, Gamepads und VR.
Plattformübergreifende Eingabe
Roblox ist von Natur aus plattfomübergreifend, da Spieler Spiele auf ihrem Telefon oder Tablet entdecken und spielen können, um später dort fortzufahren, wo sie aufgehört haben, auf ihrem PC oder ihrer Konsole. Eingaben sind ein besonders wichtiger Teil Ihres plattformübergreifenden Entwicklungsplans.
Um diesen Prozess zu vereinfachen, bietet Roblox das Input Action System an, um Aktionen wie "springen", "rennen" oder "schießen" zu definieren und Bindings für mehrere Hardwareeingaben einzurichten, um diese Aktionen auszuführen. Dadurch müssen Sie nicht über alle technischen Aspekte der Hardwareeingaben nachdenken und können einfach definieren, welche Eingaben welche Aktionen auslösen.

Eingabetyperkennung
In der plattformübergreifenden Entwicklung ist es wichtig, den primären Eingabetyp zu bestimmen und darauf zu reagieren, den ein Spieler verwendet, normalerweise um sicherzustellen, dass UI-Elemente wie Onscreen-Schaltflächen und Menüs elegant über Geräte hinweg funktionieren.
Zum Beispiel geht ein berührungsempfindliches Gerät davon aus, dass Berührung die standardmäßige Eingabe ist und dass Berührungsschaltflächen für Aktionen angezeigt werden können. Wenn ein Spieler jedoch eine zusätzliche Bluetooth-Tastatur/Maus oder ein Gamepad anschließt, können Sie davon ausgehen, dass er zu diesem als primären Eingabetyp wechseln möchte und möglicherweise Berührung als Backup-Eingabe für die Onscreen-Benutzeroberfläche verwenden möchte. Die schreibgeschützte UserInputService.PreferredInput-Eigenschaft ist eine praktische Möglichkeit, um mehrere Eingabetypen über verschiedene Gerätetypen hinweg zu testen und sich anzupassen, basierend auf dem erwarteten Verhalten der Spieler.
Der Wert von PreferredInput ändert sich basierend auf den integrierten Geräteeingaben und der letzten Interaktion des Spielers mit einem angeschlossenen Gamepad oder einer Tastatur/Maus. Beispiele umfassen:
| Echtwelt-Szenario | PreferredInput |
|---|---|
| Der Spieler verwendet ein Telefon ohne andere angeschlossene Eingabegeräte; keine Möglichkeit für eine Änderung des Eingabetyp. | Touch |
| Der Spieler verwendet ein mobiles Gerät mit einer verbundenen Bluetooth-Tastatur & Maus, aber kein Gamepad ist angeschlossen. | KeyboardAndMouse |
| Der Spieler verwendet ein Tablet mit einem angeschlossenen Bluetooth-Gamepad, aber keine Tastatur oder Maus ist angeschlossen. | Gamepad |
| Der Spieler verwendet eine Xbox oder PlayStation mit einer verbundenen Bluetooth-Tastatur & Maus und hat zuletzt mit der Tastatur oder Maus interagiert. | KeyboardAndMouse |
| Der Spieler ist an einem Windows- oder Mac-PC mit einem angeschlossenen Gamepad und hat zuletzt mit dem Gamepad interagiert. | Gamepad |
Das folgende LocalScript ist eine Vorlage zur anfänglichen Erkennung des bevorzugten Eingabetyps und zur Reaktion auf Änderungen während des Spiels.
PreferredInput-Erkennung
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Der Spieler befindet sich auf einem berührungsempfindlichen Gerät ohne andere verfügbare/angeschlossene Eingabetypen
print("Touch")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- Der Spieler hat ein Gamepad angeschlossen oder zuletzt damit interagiert
print("Gamepad")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- Der Spieler hat eine Tastatur oder Maus angeschlossen oder zuletzt damit interagiert
print("KeyboardAndMouse")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)
Standardbindings
Roblox bietet standardmäßige Eingabebindungen für Bewegung, Kamerasteuerung und grundlegende Interaktion mit der Umgebung — Roblox-Spieler sind mit diesen Steuerungen vertraut, daher sollten Sie diese nur in bestimmten Fällen überschreiben. Bitte beachten Sie auch, dass die reservierten Eingaben nicht überschrieben werden können und immer mit ihrem vorgesehenen Zweck funktionieren.
| Aktion | Maus/Tastatur | Gamepad | Berührung |
|---|---|---|---|
| Öffne das Roblox-Menü | Esc | Start-Taste (ButtonStart) | N/A |
| Entwicklerkonsole | F9 | N/A | N/A |
| Vollbildmodus (Windows) Desktop anzeigen (Mac) | F11 | N/A | N/A |
| Video aufnehmen (Windows) | F12 | N/A | N/A |
| Bildschirmfoto aufnehmen | PrintScreen | N/A | N/A |