Roblox accepteert invoer van gamepads zoals Xbox- en PlayStation-controllers. Om cross-platform invoer, inclusief gamepads, te vereenvoudigen, biedt Roblox het Input Action System om acties zoals "springen", "rennen" of "schieten" te definiëren en bindingen voor meerdere hardware-invoeren in te stellen om die acties aan te sturen.
Bij het binden van gamepad-invoeren, zie gemeenschappelijke besturingsschema's om een consistente gamepad-ervaring voor spelers te creëren. Nadat de invoer is ingesteld, kun je de ervaring van de speler verbeteren door haptische feedback op ondersteunde controllers op te nemen.
Terwijl je ondersteuning voor gamepads opbouwt, vergeet niet regelmatig te testen met een aangesloten gamepad of de Controller Emulator in Studio.
Invoertype-detectie
In cross-platform ontwikkeling is het belangrijk dat je het PreferredInput type bepaalt en hierop reageert dat een speler gebruikt, normaal gesproken om ervoor te zorgen dat UI elementen zoals knoppen en menu's op het scherm elegant werken en interactie tussen apparaten ondersteunen.
Bijvoorbeeld, een console gaat ervan uit dat gamepads de standaardinvoer zijn, maar een speler op PC of laptop kan er ook voor kiezen om een bluetooth-gamepad aan te sluiten. In dit geval blijft muis/toetsenbord een geldige invoer voor die speler, maar je kunt aannemen dat ze willen overschakelen naar de aangesloten gamepad als het primaire invoertype.
Zie invoertype-detectie voor meer informatie.
Gemeenschappelijke besturingsschema's
Bij het overwegen van specifieke besturingsbindingen voor het Input Action System, is het het beste om consistentie te waarborgen tussen verschillende games. De volgende invoerbindingen helpen spelers om zich onmiddellijk vertrouwd en comfortabel te voelen met gamepadbesturing.
| Invoer | Veelvoorkomende gebruiksscenario's |
|---|---|
| ButtonA | Accepteert speler prompts of GUI-selecties. Alternatief gebruikt voor primaire acties zoals springen. |
| ButtonB | Annuleert speler prompts of GUI-selecties. Alternatief gebruikt voor secundaire acties zoals een dodging, rollen of rennen. |
| Thumbstick1 | Over het algemeen geassocieerd met karakterbeweging. |
| Thumbstick2 | Over het algemeen geassocieerd met camerabeweging. |
| ButtonL2, ButtonR2 | Over het algemeen gebruikt voor primaire acties, zoals schieten. |
| ButtonL1, ButtonR1, ButtonX, ButtonY | Secundaire acties zoals herladen, richten of toegang krijgen tot een inventaris of minimap. |

Haptische feedback
Veel gamepad-controllers hebben motoren ingebouwd om haptische feedback te bieden. Het toevoegen van rumbles en trillingen kan de ervaring van een speler aanzienlijk verbeteren en subtiele feedback bieden naast visuals of audio.
Roblox ondersteunt haptics voor PlayStation-gamepads, Xbox-gamepads en de Quest Touch-controller. Haptische feedback wordt beheerd via HapticEffect instanties die kunnen worden ingesteld op een specifieke Type zoals GameplayCollision of UIClick.
Zodra een HapticEffect is ingesteld, kun je deze initiëren via de Play() methode, bijvoorbeeld:
local Workspace = game:GetService("Workspace")
local effect = Instance.new("HapticEffect")
effect.Type = Enum.HapticEffectType.GameplayExplosion
effect.Parent = Workspace
-- Speel het haptische effect af
effect:Play()Controller-emulatie
Gebruik de Controller Emulator om gamepad-invoer direct in Studio te testen zonder een fysieke controller aangesloten. Het toont een afbeelding van het geëmuleerde apparaat en verlicht de bedieningselementen zodra invoer arriveert, wat helpt te bevestigen dat je UserInputService handlers en Input Action System bindingen reageren zoals je verwacht.