Apprendre
Classe de moteur
UserInputService
Création impossible
Service
Non répliqué

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Événements
InputBegan(input: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
InputChanged(input: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
InputEnded(input: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
PointerAction(wheel: number,pan: Vector2,pinch: number,gameProcessedEvent: boolean):RBXScriptSignal
TouchDrag(dragDirection: Enum.SwipeDirection,numberOfTouches: number,gameProcessedEvent: boolean):RBXScriptSignal
TouchEnded(touch: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
TouchLongPress(touchPositions: {any},state: Enum.UserInputState,gameProcessedEvent: boolean):RBXScriptSignal
TouchMoved(touch: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
TouchPan(touchPositions: {any},totalTranslation: Vector2,velocity: Vector2,state: Enum.UserInputState,gameProcessedEvent: boolean):RBXScriptSignal
TouchPinch(touchPositions: {any},scale: number,velocity: number,state: Enum.UserInputState,gameProcessedEvent: boolean):RBXScriptSignal
TouchRotate(touchPositions: {any},rotation: number,velocity: number,state: Enum.UserInputState,gameProcessedEvent: boolean):RBXScriptSignal
TouchStarted(touch: InputObject,gameProcessedEvent: boolean):RBXScriptSignal
TouchSwipe(swipeDirection: Enum.SwipeDirection,numberOfTouches: number,gameProcessedEvent: boolean):RBXScriptSignal
TouchTap(touchPositions: {any},gameProcessedEvent: boolean):RBXScriptSignal
Membres hérités

Référence API
Propriétés
AccelerometerEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.AccelerometerEnabled:boolean
Échantillons de code
Déplacer une balle en utilisant l'accéléromètre
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local ball = script.Parent:WaitForChild("Ball")
local mass = ball:GetMass()
local gravityForce = ball:WaitForChild("GravityForce")
local function moveBall(gravity)
gravityForce.Force = gravity.Position * Workspace.Gravity * mass
end
if UserInputService.AccelerometerEnabled then
UserInputService.DeviceGravityChanged:Connect(moveBall)
end

GamepadEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.GamepadEnabled:boolean

GyroscopeEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.GyroscopeEnabled:boolean

KeyboardEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.KeyboardEnabled:boolean

ModalEnabled
Déprécié

MouseBehavior
Lecture parallèle
Capacités : Input
UserInputService.MouseBehavior:Enum.MouseBehavior

MouseDeltaSensitivity
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.MouseDeltaSensitivity:number

MouseEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.MouseEnabled:boolean

MouseIcon
Lecture parallèle
Capacités : Input
UserInputService.MouseIcon:ContentId
Échantillons de code
Icône de Souris Personnalisée
local UserInputService = game:GetService("UserInputService")
-- Afin de restaurer le curseur à ce qu'il était précédemment, il devra être sauvegardé dans une variable
local savedCursor = nil
local function setTemporaryCursor(cursor: string)
-- Ne mettre à jour le curseur enregistré que s'il n'est pas actuellement sauvegardé
if not savedCursor then
savedCursor = UserInputService.MouseIcon
end
UserInputService.MouseIcon = cursor
end
local function clearTemporaryCursor()
-- Ne restaurer le curseur de la souris que s'il y a un curseur sauvegardé à restaurer
if savedCursor then
UserInputService.MouseIcon = savedCursor
-- Ne pas restaurer le même curseur deux fois (cela pourrait écraser un autre script)
savedCursor = nil
end
end
setTemporaryCursor("http://www.roblox.com/asset?id=163023520")
print(UserInputService.MouseIcon)
clearTemporaryCursor()

MouseIconContent
Lecture parallèle
Capacités : Input
UserInputService.MouseIconContent:Content
Échantillons de code
Icône de Souris Personnalisée
local UserInputService = game:GetService("UserInputService")
-- Afin de restaurer le curseur à ce qu'il était précédemment, il devra être sauvegardé dans une variable
local savedCursor = nil
local function setTemporaryCursor(cursor: string)
-- Ne mettre à jour le curseur enregistré que s'il n'est pas actuellement sauvegardé
if not savedCursor then
savedCursor = UserInputService.MouseIcon
end
UserInputService.MouseIcon = cursor
end
local function clearTemporaryCursor()
-- Ne restaurer le curseur de la souris que s'il y a un curseur sauvegardé à restaurer
if savedCursor then
UserInputService.MouseIcon = savedCursor
-- Ne pas restaurer le même curseur deux fois (cela pourrait écraser un autre script)
savedCursor = nil
end
end
setTemporaryCursor("http://www.roblox.com/asset?id=163023520")
print(UserInputService.MouseIcon)
clearTemporaryCursor()

MouseIconEnabled
Lecture parallèle
Capacités : Input
UserInputService.MouseIconEnabled:boolean

OnScreenKeyboardPosition
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.OnScreenKeyboardPosition:Vector2

OnScreenKeyboardSize
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.OnScreenKeyboardSize:Vector2

OnScreenKeyboardVisible
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.OnScreenKeyboardVisible:boolean

PreferredInput
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.PreferredInput:Enum.PreferredInput
Échantillons de code
Détection de l'input préféré
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Le joueur utilise un appareil à écran tactile sans autres types d'input 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)

TouchEnabled
Lecture uniquement
Non répliqué
Lecture parallèle
Capacités : Input
UserInputService.TouchEnabled:boolean

TouchScreenEnabled
Lecture uniquement
Non répliqué
Sécurité des scripts Roblox
Lecture parallèle
Capacités : Input
UserInputService.TouchScreenEnabled:boolean

UserHeadCFrame
Déprécié

VREnabled
Déprécié

Méthodes
CreateVirtualInput
Capacités : Input
UserInputService:CreateVirtualInput():Object
Retours

GamepadSupports
Capacités : Input
UserInputService:GamepadSupports(
gamepadNum:Enum.UserInputType, gamepadKeyCode:Enum.KeyCode
Paramètres
gamepadKeyCode:Enum.KeyCode
Retours

GetConnectedGamepads
Capacités : Input
UserInputService:GetConnectedGamepads():{any}
Retours

GetDeviceAcceleration
Capacités : Input
UserInputService:GetDeviceAcceleration():InputObject
Échantillons de code
Accélération de l'appareil de sortie
local UserInputService = game:GetService("UserInputService")
if UserInputService.AccelerometerEnabled then
local acceleration = UserInputService:GetDeviceAcceleration().Position
print(acceleration)
else
warn("Impossible d'obtenir l'accélération de l'appareil car l'appareil n'a pas d'accéléromètre activé !")
end

GetDeviceGravity
Capacités : Input
UserInputService:GetDeviceGravity():InputObject
Échantillons de code
Déplacement des objets avec le gyroscope
local UserInputService = game:GetService("UserInputService")
local bubble = script.Parent:WaitForChild("Bubble")
local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = CFrame.new(0, 20, 0) * CFrame.Angles(-math.pi / 2, 0, 0)
if UserInputService.GyroscopeEnabled then
-- Lier l'événement à quand le gyroscope détecte un changement
UserInputService.DeviceGravityChanged:Connect(function(accel)
-- Déplacer la bulle dans le monde en fonction des données du gyroscope
bubble.Position = Vector3.new(-8 * accel.Position.X, 1.8, -8 * accel.Position.Z)
end)
end

GetDeviceRotation
Capacités : Input
UserInputService:GetDeviceRotation():Tuple
Retours
Échantillons de code
Rotation de l'appareil de sortie
local UserInputService = game:GetService("UserInputService")
if UserInputService.GyroscopeEnabled then
local _, cf = UserInputService:GetDeviceRotation()
print(cf)
else
warn("Impossible d'obtenir la rotation de l'appareil car l'appareil n'a pas de gyroscope activé!")
end

GetFocusedTextBox
Capacités : Input
UserInputService:GetFocusedTextBox():TextBox
Retours

GetGamepadConnected
Capacités : Input
UserInputService:GetGamepadConnected(gamepadNum:Enum.UserInputType):boolean
Paramètres
Retours

GetGamepadState
Capacités : Input
UserInputService:GetGamepadState(gamepadNum:Enum.UserInputType):{InputObject}
Paramètres
Retours

GetImageForKeyCode
Capacités : Input
UserInputService:GetImageForKeyCode(keyCode:Enum.KeyCode):ContentId
Paramètres
keyCode:Enum.KeyCode
Retours
ContentId
Échantillons de code
UserInputService - Obtenir l'image pour KeyCode
local UserInputService = game:GetService("UserInputService")
local imageLabel = script.Parent
local key = Enum.KeyCode.ButtonA
local mappedIconImage = UserInputService:GetImageForKeyCode(key)
imageLabel.Image = mappedIconImage

GetKeysPressed
Capacités : Input
UserInputService:GetKeysPressed():{InputObject}
Retours

GetLastInputType
Capacités : Input
UserInputService:GetLastInputType():Enum.UserInputType
Échantillons de code
Détecter le dernier type d'entrée
local UserInputService = game:GetService("UserInputService")
if UserInputService:GetLastInputType() == Enum.UserInputType.Keyboard then
print("La dernière entrée était un clavier !")
end

GetMouseButtonsPressed
Capacités : Input
UserInputService:GetMouseButtonsPressed():{InputObject}
Retours
Échantillons de code
Vérifier les boutons de la souris pressés
local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
-- Retourner un tableau des boutons de la souris pressés
local buttonsPressed = UserInputService:GetMouseButtonsPressed()
local m1, m2 = false, false
for _, button in buttonsPressed do
if button.UserInputType == Enum.UserInputType.MouseButton1 then
print("MouseButton1 pressé !")
m1 = true
end
if button.UserInputType == Enum.UserInputType.MouseButton2 then
print("MouseButton2 pressé !")
m2 = true
end
if m1 and m2 then
print("Les deux boutons de la souris sont pressés !")
end
end
end)

GetMouseDelta
Capacités : Input
UserInputService:GetMouseDelta():Vector2
Retours
Échantillons de code
Obtenir le delta de la souris
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
local function onRenderStep()
local delta = UserInputService:GetMouseDelta()
if delta ~= Vector2.new(0, 0) then
print("La souris a bougé", delta, "depuis la dernière étape")
end
end
RunService:BindToRenderStep("MeasureMouseMovement", Enum.RenderPriority.Input.Value, onRenderStep)

GetMouseLocation
Capacités : Input
UserInputService:GetMouseLocation():Vector2
Retours

GetNavigationGamepads
Capacités : Input
UserInputService:GetNavigationGamepads():{any}
Retours

GetStringForKeyCode
Capacités : Input
UserInputService:GetStringForKeyCode(
Paramètres
keyCode:Enum.KeyCode
Valeur par défaut : "Default"
Retours

GetSupportedGamepadKeyCodes
Capacités : Input
UserInputService:GetSupportedGamepadKeyCodes(gamepadNum:Enum.UserInputType):{any}
Paramètres
Retours

GetUserCFrame
Déprécié

IsGamepadButtonDown
Capacités : Input
UserInputService:IsGamepadButtonDown(
gamepadNum:Enum.UserInputType, gamepadKeyCode:Enum.KeyCode
Paramètres
gamepadKeyCode:Enum.KeyCode
Retours

IsKeyDown
Capacités : Input
UserInputService:IsKeyDown(keyCode:Enum.KeyCode):boolean
Paramètres
keyCode:Enum.KeyCode
Retours

IsMouseButtonPressed
Capacités : Input
UserInputService:IsMouseButtonPressed(mouseButton:Enum.UserInputType):boolean
Paramètres
mouseButton:Enum.UserInputType
Retours

IsNavigationGamepad
Capacités : Input
UserInputService:IsNavigationGamepad(gamepadEnum:Enum.UserInputType):boolean
Paramètres
gamepadEnum:Enum.UserInputType
Retours

RecenterUserHeadCFrame
Capacités : Input
UserInputService:RecenterUserHeadCFrame():()
Retours
()

SetNavigationGamepad
Capacités : Input
UserInputService:SetNavigationGamepad(
gamepadEnum:Enum.UserInputType, enabled:boolean
):()
Paramètres
gamepadEnum:Enum.UserInputType
enabled:boolean
Retours
()

Événements
DeviceAccelerationChanged
Capacités : Input
UserInputService.DeviceAccelerationChanged(acceleration:InputObject):RBXScriptSignal
Paramètres
acceleration:InputObject
Échantillons de code
Contrôler les joueurs à l'aide de l'accéléromètre
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local SENSITIVITY = 0.2
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local ready = true
local function changeAcceleration(acceleration)
if ready then
ready = false
local accel = acceleration.Position
if accel.Y >= SENSITIVITY then
humanoid.Jump = true
end
if accel.Z <= -SENSITIVITY then
humanoid:Move(Vector3.new(-1, 0, 0))
end
if accel.Z >= SENSITIVITY then
humanoid:Move(Vector3.new(1, 0, 0))
end
if accel.X <= -SENSITIVITY then
humanoid:Move(Vector3.new(0, 0, 1))
end
if accel.X >= SENSITIVITY then
humanoid:Move(Vector3.new(0, 0, -1))
end
task.wait(1)
ready = true
end
end
if UserInputService.AccelerometerEnabled then
UserInputService.DeviceAccelerationChanged:Connect(changeAcceleration)
end

DeviceGravityChanged
Capacités : Input
UserInputService.DeviceGravityChanged(gravity:InputObject):RBXScriptSignal
Paramètres
gravity:InputObject
Échantillons de code
Déplacer une balle en utilisant l'accéléromètre
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")
local ball = script.Parent:WaitForChild("Ball")
local mass = ball:GetMass()
local gravityForce = ball:WaitForChild("GravityForce")
local function moveBall(gravity)
gravityForce.Force = gravity.Position * Workspace.Gravity * mass
end
if UserInputService.AccelerometerEnabled then
UserInputService.DeviceGravityChanged:Connect(moveBall)
end

DeviceRotationChanged
Capacités : Input
UserInputService.DeviceRotationChanged(
rotation:InputObject, cframe:CFrame
Paramètres
rotation:InputObject
cframe:CFrame

GamepadConnected
Capacités : Input
UserInputService.GamepadConnected(gamepadNum:Enum.UserInputType):RBXScriptSignal
Paramètres

GamepadDisconnected
Capacités : Input
UserInputService.GamepadDisconnected(gamepadNum:Enum.UserInputType):RBXScriptSignal
Paramètres

InputBegan
Capacités : Input
UserInputService.InputBegan(
input:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

InputChanged
Capacités : Input
UserInputService.InputChanged(
input:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

InputEnded
Capacités : Input
UserInputService.InputEnded(
input:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

JumpRequest
Capacités : Input
UserInputService.JumpRequest():RBXScriptSignal
Échantillons de code
Désactiver le saut par défaut
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
local processJumpRequest = false
local COOLDOWN_TIME = 0.5
local function jumpRequest()
if processJumpRequest == false then
processJumpRequest = true
-- Traiter la demande de saut personnalisée
print("Saut demandé!")
-- Réinitialiser la variable de debounce après le cooldown
task.wait(COOLDOWN_TIME)
processJumpRequest = false
end
end
UserInputService.JumpRequest:Connect(jumpRequest)

LastInputTypeChanged
Capacités : Input
UserInputService.LastInputTypeChanged(lastInputType:Enum.UserInputType):RBXScriptSignal
Paramètres
lastInputType:Enum.UserInputType

PointerAction
Capacités : Input
UserInputService.PointerAction(
wheel:number, pan:Vector2, pinch:number, gameProcessedEvent:boolean
Paramètres
wheel:number
pinch:number
gameProcessedEvent:boolean

TextBoxFocused
Capacités : Input
UserInputService.TextBoxFocused(textboxFocused:TextBox):RBXScriptSignal
Paramètres
textboxFocused:TextBox
Échantillons de code
Modification de TextBox lors de Focus et FocusRelâché
local UserInputService = game:GetService("UserInputService")
local function textBoxFocused(textBox)
textBox.BackgroundTransparency = 0
end
local function textBoxFocusReleased(textBox)
textBox.BackgroundTransparency = 0.5
end
UserInputService.TextBoxFocused:Connect(textBoxFocused)
UserInputService.TextBoxFocusReleased:Connect(textBoxFocusReleased)

TextBoxFocusReleased
Capacités : Input
UserInputService.TextBoxFocusReleased(textboxReleased:TextBox):RBXScriptSignal
Paramètres
textboxReleased:TextBox
Échantillons de code
Modification de TextBox lors de Focus et FocusRelâché
local UserInputService = game:GetService("UserInputService")
local function textBoxFocused(textBox)
textBox.BackgroundTransparency = 0
end
local function textBoxFocusReleased(textBox)
textBox.BackgroundTransparency = 0.5
end
UserInputService.TextBoxFocused:Connect(textBoxFocused)
UserInputService.TextBoxFocusReleased:Connect(textBoxFocusReleased)

TouchDrag
Capacités : Input
UserInputService.TouchDrag(
dragDirection:Enum.SwipeDirection, numberOfTouches:number, gameProcessedEvent:boolean
Paramètres
dragDirection:Enum.SwipeDirection
numberOfTouches:number
gameProcessedEvent:boolean

TouchEnded
Capacités : Input
UserInputService.TouchEnded(
touch:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

TouchLongPress
Capacités : Input
UserInputService.TouchLongPress(
touchPositions:{any}, state:Enum.UserInputState, gameProcessedEvent:boolean
Paramètres
touchPositions:{any}
gameProcessedEvent:boolean

TouchMoved
Capacités : Input
UserInputService.TouchMoved(
touch:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

TouchPan
Capacités : Input
UserInputService.TouchPan(
touchPositions:{any}, totalTranslation:Vector2, velocity:Vector2, state:Enum.UserInputState, gameProcessedEvent:boolean
Paramètres
touchPositions:{any}
totalTranslation:Vector2
velocity:Vector2
gameProcessedEvent:boolean

TouchPinch
Capacités : Input
UserInputService.TouchPinch(
touchPositions:{any}, scale:number, velocity:number, state:Enum.UserInputState, gameProcessedEvent:boolean
Paramètres
touchPositions:{any}
scale:number
velocity:number
gameProcessedEvent:boolean

TouchRotate
Capacités : Input
UserInputService.TouchRotate(
touchPositions:{any}, rotation:number, velocity:number, state:Enum.UserInputState, gameProcessedEvent:boolean
Paramètres
touchPositions:{any}
rotation:number
velocity:number
gameProcessedEvent:boolean

TouchStarted
Capacités : Input
UserInputService.TouchStarted(
touch:InputObject, gameProcessedEvent:boolean
Paramètres
gameProcessedEvent:boolean

TouchSwipe
Capacités : Input
UserInputService.TouchSwipe(
swipeDirection:Enum.SwipeDirection, numberOfTouches:number, gameProcessedEvent:boolean
Paramètres
swipeDirection:Enum.SwipeDirection
numberOfTouches:number
gameProcessedEvent:boolean

TouchTap
Capacités : Input
UserInputService.TouchTap(
touchPositions:{any}, gameProcessedEvent:boolean
Paramètres
touchPositions:{any}
gameProcessedEvent:boolean

TouchTapInWorld
Capacités : Input
UserInputService.TouchTapInWorld(
position:Vector2, processedByUI:boolean
Paramètres
position:Vector2
processedByUI:boolean

UserCFrameChanged
Déprécié

WindowFocused
Capacités : Input
UserInputService.WindowFocused():RBXScriptSignal

WindowFocusReleased
Capacités : Input
UserInputService.WindowFocusReleased():RBXScriptSignal
Échantillons de code
Script de Perte de Focus de Fenêtre (LocalScript)
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local awayEvent = ReplicatedStorage:WaitForChild("AwayEvent")
local function focusGained()
awayEvent:FireServer(false)
end
local function focusReleased()
awayEvent:FireServer(true)
end
UserInputService.WindowFocused:Connect(focusGained)
UserInputService.WindowFocusReleased:Connect(focusReleased)
Script de Concentration Hors Fenêtre (Script)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local awayEvent = Instance.new("RemoteEvent")
awayEvent.Name = "AwayEvent"
awayEvent.Parent = ReplicatedStorage
local function manageForceField(player, away)
if away then
local forceField = Instance.new("ForceField")
forceField.Parent = player.Character
else
local forceField = player.Character:FindFirstChildOfClass("ForceField")
if forceField then
forceField:Destroy()
end
end
end
awayEvent.OnServerEvent:Connect(manageForceField)

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.