Roblox akzeptiert Eingaben von Gamepads wie Xbox- und PlayStation-Controllern. Um plattformübergreifende Eingaben, einschließlich Gamepads, 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 zu steuern.
Beim Binden von Gamepad-Eingaben sollten Sie die üblichen Steuerungsschemata berücksichtigen, um ein konsistentes Gamepad-Erlebnis für die Spieler zu schaffen. Nachdem die Eingaben festgelegt sind, können Sie das Erlebnis des Spielers durch haptisches Feedback auf unterstützten Controllern verbessern.
Wenn Sie die Unterstützung für Gamepads entwickeln, denken Sie daran, häufig mit einem verbundenen Gamepad oder dem Controller Emulator im Studio zu testen.
Eingabetyp-Erkennung
In der plattformübergreifenden Entwicklung ist es wichtig, dass Sie den PreferredInput-Typ erkennen und darauf reagieren, den ein Spieler verwendet, normalerweise um sicherzustellen, dass UI Elemente wie Bildschirmtasten und Menüs elegant funktionieren und die Interaktion über Geräte hinweg unterstützen.
Ein Beispiel: Eine Konsole geht davon aus, dass Gamepads die Standard-Eingabe sind, aber ein Spieler auf einem PC oder Laptop kann ebenfalls wählen, ein Bluetooth-Gamepad zu verbinden. In diesem Fall bleibt Maus/Tastatur eine gültige Eingabe für diesen Spieler, aber Sie können davon ausgehen, dass er das verbundene Gamepad als primären Eingabetyp verwenden möchte.
Siehe Eingabetyp-Erkennung für weitere Informationen.
Übliche Steuerungsschemata
Bei der Berücksichtigung spezifischer Steuerungsbindungen für das Input Action System ist es am besten, Konsistenz über verschiedene Spiele hinweg zu schaffen. Die folgenden Eingabebindungen helfen den Spielern, sich sofort mit den Gamepad-Steuerungen vertraut und wohl zu fühlen.
| Eingabe | Übliche Anwendungsfälle |
|---|---|
| ButtonA | Akzeptiert Spieleraufforderungen oder GUI-Auswahlen. Alternativ verwendet für primäre Aktionen wie Springen. |
| ButtonB | Storniert Spieleraufforderungen oder GUI-Auswahlen. Alternativ verwendet für sekundäre Aktionen wie einen Ausweichsprung, Roll oder Sprint. |
| Thumbstick1 | Im Allgemeinen mit der Charakterbewegung verbunden. |
| Thumbstick2 | Im Allgemeinen mit der Kamerabewegung verbunden. |
| ButtonL2, ButtonR2 | Im Allgemeinen verwendet für primäre Aktionen, wie Schießen. |
| ButtonL1, ButtonR1, ButtonX, ButtonY | Sekundäre Aktionen wie Nachladen, Zielen oder Zugriff auf ein Inventar oder eine Minikarte. |

Haptisches Feedback
Viele Gamepad-Controller haben Motoren eingebaut, um haptisches Feedback zu bieten. Das Hinzufügen von Rumble- und Vibrationsfunktionen kann das Erlebnis eines Spielers erheblich verbessern und subtile Rückmeldungen über visuelle oder akustische Hinweise hinaus bieten.
Roblox unterstützt Haptik für PlayStation-Gamepads, Xbox-Gamepads und den Quest Touch-Controller. Haptisches Feedback wird durch HapticEffect-Instanzen verwaltet, die auf einen bestimmten Type wie GameplayCollision oder UIClick eingestellt werden können.
Sobald ein HapticEffect eingerichtet ist, können Sie es durch die Methode Play() initiieren, zum Beispiel:
local Workspace = game:GetService("Workspace")local effect = Instance.new("HapticEffect")effect.Type = Enum.HapticEffectType.GameplayExplosioneffect.Parent = Workspace-- Spielen Sie den haptischen Effekteffect:Play()
Controller-Emulation
Der Controller Emulator, zugänglich über das Test-Menü von Studio, ermöglicht Ihnen eine präzise Emulation von Gamepad-Eingaben direkt in Studio. Der Standardcontroller ist ein generischer Gamepad, aber Sie können alternative Controller aus dem Auswahlmenü in der oberen linken Ecke auswählen.

Während des Spieltests können Sie das Spiel mit dem virtuellen Controller über Ihre Maus steuern.
Sie können auch auf Mappings bearbeiten in der oberen rechten Ecke klicken, um die Tastenzuordnungen für den virtuellen Controller anzuzeigen und zu bearbeiten, beispielsweise E zu ButtonL2 oder 9 zu ButtonA. Diese Zuordnungen werden wie andere Studio-Einstellungen gespeichert (pro Controller, pro Benutzer, pro Computer) und in der Emulatoransicht sowie im 3D-Viewport in Gamepad-Events übersetzt.