Chaque jeu doit recevoir des entrées utilisateur afin que les joueurs puissent interagir et visualiser leur environnement. Roblox prend en charge presque toutes les formes d'entrée, y compris souris/clavier, tactile, manettes de jeu, et VR.
Entrée multiplateforme
Roblox est essentiellement multiplateforme, car les joueurs peuvent découvrir et rejoindre des jeux sur leur téléphone ou leur tablette, puis continuer là où ils se sont arrêtés sur leur PC ou leur console. L'entrée est particulièrement importante dans le cadre de votre plan de développement multiplateforme.
Pour simplifier ce processus, Roblox fournit le Système d'Actions d'Entrée pour définir des actions telles que "sauter", "courir" ou "tirer" et configurer des liaisons pour plusieurs entrées matérielles afin de déclencher ces actions. Cela vous libère de la nécessité de penser à tous les aspects techniques des entrées matérielles et vous permet de simplement définir quelles entrées exécutent quelles actions.

Détection du type d'entrée
Dans le développement multiplateforme, il est important de déterminer et de répondre au type d'entrée principal qu'un joueur utilise, généralement pour garantir que les éléments UI tels que les boutons et les menus à l'écran fonctionnent élégamment sur plusieurs appareils.
Par exemple, un appareil à écran tactile suppose que le tactile est l'entrée par défaut et que des boutons tactiles peuvent apparaître pour les actions, mais si un joueur connecte un clavier/souris ou une manette Bluetooth supplémentaires, vous pouvez supposer qu'il souhaite passer à cela comme type d'entrée principal et éventuellement utiliser le tactile comme une entrée de secours pour l'UI à l'écran. La propriété en lecture seule UserInputService.PreferredInput est un moyen pratique de tester et de s'adapter à plusieurs types d'entrées sur plusieurs types d'appareils, en fonction du comportement anticipé des joueurs.
La valeur de PreferredInput change en fonction des entrées des appareils intégrés et de la dernière interaction du joueur avec une manette ou un clavier/souris connecté. Les exemples incluent :
| Scénario du monde réel | PreferredInput |
|---|---|
| Le joueur utilise un téléphone sans autres appareils d'entrée connectés ; pas de possibilité de changement de type d'entrée. | Touch |
| Le joueur utilise un appareil mobile avec un clavier Bluetooth et une souris connectés, mais aucune manette n'est connectée. | KeyboardAndMouse |
| Le joueur utilise une tablette avec une manette Bluetooth connectée, mais aucun clavier ou souris n'est connecté. | Gamepad |
| Le joueur est sur Xbox ou PlayStation avec un clavier Bluetooth et une souris connectés et a interagi le plus récemment avec le clavier ou la souris. | KeyboardAndMouse |
| Le joueur est sur un PC Windows ou Mac avec une manette connectée et a interagi le plus récemment avec la manette. | Gamepad |
Le script suivant LocalScript est un modèle pour détecter initialement l'entrée préférée et répondre aux changements pendant le gameplay.
Détection d'entrée préférée
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Le joueur est sur un appareil à écran tactile sans autres types d'entrée disponibles/connectés
print("Touch")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- Le joueur a connecté ou interagi le plus récemment avec une manette
print("Gamepad")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- Le joueur a connecté ou interagi le plus récemment avec un clavier ou une souris
print("KeyboardAndMouse")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)
Liaison par défaut
Roblox fournit des liaisons d'entrée par défaut pour le mouvement, le contrôle de la caméra et l'interaction de base avec l'environnement — les joueurs de Roblox sont familiers avec ces contrôles, vous ne devez donc les remplacer que dans des cas spécifiques. Notez également que les entrées réservées ne peuvent pas être remplacées et fonctionneront toujours avec leur objectif prévu.
| Action | Souris/Clavier | Manette | Tactile |
|---|---|---|---|
| Ouvrir le menu Roblox | Esc | Start bouton (ButtonStart) | N/A |
| Console développeur | F9 | N/A | N/A |
| Mode plein écran (Windows) Afficher le bureau (Mac) | F11 | N/A | N/A |
| Enregistrer une vidéo (Windows) | F12 | N/A | N/A |
| Prendre une capture d'écran | PrintScreen | N/A | N/A |