Un pourcentage important des sessions Roblox se jouent sur des appareils disposant d'une souris et d'un clavier, il est donc essentiel de prendre en charge ces entrées lors de la conception d'un jeu pour un large public.
Pour simplifier les entrées multi‑plateformes, y compris souris/clavier, Roblox fournit le Système d'Action 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 d'exécuter ces actions.
Roblox prend également en charge l'entrée souris/clavier générale via les événements UserInputService comme InputBegan et InputEnded, ainsi que des méthodes comme IsKeyDown() pour vérifier si une touche particulière est enfoncée sur un clavier.
Détection de type d'entrée
Dans le développement multi-plateformes, il est important de déterminer et de répondre au type PreferredInput que le joueur utilise, normalement pour garantir que les éléments UI comme les boutons et menus à l'écran fonctionnent élégamment et supportent l'interaction à travers les appareils.
Par exemple, un PC ou un ordinateur portable suppose que la souris/le clavier est l'entrée par défaut, mais un joueur peut choisir de connecter une manette bluetooth. Dans ce cas, la souris/le clavier reste une entrée valide, mais vous pouvez supposer que le joueur souhaite passer à la manette connectée comme type d'entrée principal.
Consultez la détection de type d'entrée pour plus d'informations.
Entrée souris/clavier générique
Au-delà du Système d'Action d'Entrée, vous pouvez capturer les entrées souris et clavier en utilisant UserInputService. Le LocalScript suivant, lorsqu'il est placé dans StarterPlayerScripts, capture les phases de début et de fin des touches et des clics de souris et affiche le résultat dans la fenêtre Output.
LocalScript - Sortie Touche/Souris Début et Finie
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(inputObject, processedEvent)
-- Retourner si un autre script a déjà traité l'entrée
if processedEvent then return end
print(inputObject.KeyCode.Name, "a commencé !", inputObject.Position)
end
local function onInputEnded(inputObject, processedEvent)
-- Retourner si un autre script a déjà traité l'entrée
if processedEvent then return end
print(inputObject.KeyCode.Name, "a fini !", inputObject.Position)
end
UserInputService.InputBegan:Connect(onInputBegan)
UserInputService.InputEnded:Connect(onInputEnded)
Icône de souris
Vous pouvez personnaliser l'apparence et le comportement de l'icône de souris d'un joueur dans votre jeu pour créer un style cohérent à travers tous vos éléments UI. Cela inclut le changement temporaire de l'icône de souris du joueur dans des circonstances spécifiques, comme lorsqu'il survole un bouton.
Vous pouvez changer l'icône de souris du joueur dans un LocalScript en définissant la propriété MouseIcon dans UserInputService à un ID d'actif Roblox personnalisé. Par exemple, le LocalScript suivant change l'icône de souris par défaut du joueur en un cercle avec un point bleu au centre.
local UserInputService = game:GetService("UserInputService")UserInputService.MouseIcon = "rbxassetid://3400146391"