UserInputService

InvoerDetails
KeyboardVerwerkt toetsenbordinvoer.
MouseVerwerkt muisbewegingen, knopklikken en scrollwiel.
TouchVerwerkt aanraakbewegingen op mobiele apparaten.
GamepadVerwerkt gamepadknoppen en analoge sticks.
GyroVerwerkt gyroscoopinvoer van mobiele apparaten.
AccelerometerVerwerkt accelerometerinvoer van mobiele apparaten.

Toetsenbord

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” is een boolean die aangeeft of de invoer door het spel is verwerkt. Bijvoorbeeld, het is waar wanneer je in de chat typt, zodat aangepaste scripts chatspecifieke toetsen kunnen negeren.

Muis

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)

Aanraking

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)

Gamepad

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)

Gyroscoop

Image 1
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

Versnellingsmeter

Image 1
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

Als u deze tutorial nuttig vond en mijn werk wilt ondersteunen, overweeg dan om mij een kop koffie te kopen.

Hartelijk dank voor uw steun!

Koop een kop koffie voor mij