Entrée | Détails |
---|---|
Keyboard | Gère les entrées du clavier. |
Mouse | Gère le mouvement de la souris, les clics de bouton, et la molette de défilement. |
Touch | Gère les entrées tactiles sur les appareils mobiles. |
Gamepad | Gère les boutons de la manette et les sticks analogiques. |
Gyro | Gère l'entrée du gyroscope des appareils mobiles. |
Accelerometer | Gère l'entrée de l'accéléromètre des appareils mobiles. |
Clavier
Empty
Empty
Empty
local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
print("Key pressed: " .. input.KeyCode.Name) -- Example: "Key pressed: W"
end
end)
“gameProcessed” est une valeur booléenne qui indique si l'entrée a été traitée par le jeu. Par exemple, c'est vrai lorsqu'on tape dans le chat, donc les scripts personnalisés peuvent ignorer les touches liées au chat.
Souris
Empty
Empty
Empty
local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
print("Mouse left button clicked") -- Example: "Mouse left button clicked"
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("Mouse right button clicked") -- Example: "Mouse right button clicked"
end
end)
Tactile
Empty
Empty
local UserInputService = game:GetService("UserInputService")
local longTouchDuration = 1.0 -- Duration in seconds for a long touch
local touchStartTimes = {}
UserInputService.TouchStarted:Connect(function(touch, gameProcessed)
if gameProcessed then return end
touchStartTimes[touch] = tick()
end)
UserInputService.TouchEnded:Connect(function(touch, gameProcessed)
if gameProcessed then return end
local touchDuration = tick() - touchStartTimes[touch]
if touchDuration >= longTouchDuration then
print("Long touch detected at position: " .. tostring(touch.Position))
-- Example: "Long touch detected at position: Vector3.new(100, 200, 0)"
end
touchStartTimes[touch] = nil
end)
Manette
Empty
Empty
Empty
local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Gamepad1 then
print("Gamepad button pressed: " .. input.KeyCode.Name)
-- Example: "Gamepad button pressed: ButtonA"
elseif input.UserInputType == Enum.UserInputType.Gamepad2 then
print("Gamepad button pressed: " .. input.KeyCode.Name)
-- Example: "Gamepad button pressed: ButtonB"
end
end)
Gyroscope
Empty
Empty
Empty
Roblox Studio
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Wait for the PlayerGui and ScreenGui to be ready
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = playerGui:WaitForChild("ScreenGui")
-- Create a TextLabel to display gyroscope data
local gyroLabel = Instance.new("TextLabel")
gyroLabel.Size = UDim2.new(0, 300, 0, 100)
gyroLabel.Position = UDim2.new(0.5, -150, 0.5, -50) -- Centered on the screen
gyroLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
gyroLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
gyroLabel.TextScaled = true
gyroLabel.Text = "Gyroscope Data: N/A"
gyroLabel.Parent = screenGui
-- Function to handle rotation changes
local function RotationChanged(_rotation, rotCFrame)
local x, y, z = rotCFrame:ToEulerAnglesXYZ()
-- Update the label with the rotation data
gyroLabel.Text = string.format("Rotation X: %.5f, Rotation Y: %.5f, Rotation Z: %.5f", math.deg(x), math.deg(y), math.deg(z))
end
if UserInputService.GyroscopeEnabled then
UserInputService.DeviceRotationChanged:Connect(RotationChanged)
end
Accéléromètre
Empty
Empty
Empty
Roblox Studio
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Wait for the PlayerGui and ScreenGui to be ready
local playerGui = player:WaitForChild("PlayerGui")
local screenGui = playerGui:WaitForChild("ScreenGui")
-- Create a TextLabel to display accelerometer data
local accelLabel = Instance.new("TextLabel")
accelLabel.Size = UDim2.new(0, 300, 0, 100)
accelLabel.Position = UDim2.new(0.5, -150, 0.5, -50) -- Centered on the screen
accelLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
accelLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
accelLabel.TextScaled = true
accelLabel.Text = "Gravity Data: N/A"
accelLabel.Parent = screenGui
-- Function to handle gravity changes and update the label
local function updateGravityLabel(gravity)
accelLabel.Text = string.format("Gravity X: %.5f, Gravity Y: %.5f, Gravity Z: %.5f", gravity.Position.X, gravity.Position.Y, gravity.Position.Z)
end
if UserInputService.AccelerometerEnabled then
UserInputService.DeviceGravityChanged:Connect(updateGravityLabel)
end