Een groot percentage van de Roblox-sessies wordt gespeeld op apparaten met een muis en toetsenbord, dus het is belangrijk om deze invoer te ondersteunen bij het ontwerpen van een game voor een breed publiek.
Om cross-platform invoer, inclusief muis/toetsenbord, 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.
Roblox ondersteunt ook algemene muis/toetsenbordinvoer via UserInputService-evenementen zoals InputBegan en InputEnded en methoden zoals IsKeyDown() om te controleren of een bepaalde toets op een toetsenbord is ingedrukt.
Invoertype-detectie
Bij 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 pc of laptop gaat ervan uit dat muis/toetsenbord de standaardinvoer is, maar een speler kan ervoor kiezen om een bluetooth-gamepad aan te sluiten. In dit geval blijft muis/toetsenbord een geldige invoer, maar je kunt aannemen dat de speler wil overschakelen naar de aangesloten gamepad als het primaire invoertype.
Zie invoertype-detectie voor meer informatie.
Algemene muis/toetsinvoer
Naast het Input Action System kun je muis- en toetsenbordinvoer vastleggen met UserInputService. De volgende LocalScript, wanneer geplaatst in StarterPlayerScripts, legt de begonnen en beëindigde fasen van toets- en muisklikken vast en print het resultaat naar het Output venster.
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(inputObject, processedEvent)
-- Retourneer als een ander script de invoer al heeft verwerkt
if processedEvent then return end
print(inputObject.KeyCode.Name, "begon!", inputObject.Position)
end
local function onInputEnded(inputObject, processedEvent)
-- Retourneer als een ander script de invoer al heeft verwerkt
if processedEvent then return end
print(inputObject.KeyCode.Name, "eindigde!", inputObject.Position)
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)Muispictogram
Je kunt het uiterlijk en gedrag van het muispictogram van een speler binnen je game aanpassen om een samenhangende stijl te creëren over al je UI-elementen. Dit omvat het tijdelijk veranderen van het muispictogram van de speler in specifieke omstandigheden, zoals wanneer je over een knop zweeft.
Je kunt het muispictogram van de speler in een LocalScript wijzigen door de MouseIcon eigenschap in UserInputService in te stellen op een aangepaste Roblox asset ID. Bijvoorbeeld, de volgende LocalScript verandert het standaard muispictogram van de speler in een cirkel met een blauwe stip in het midden.
local UserInputService = game:GetService("UserInputService")
UserInputService.MouseIcon = "rbxassetid://3400146391"