Entrada | Detalles |
---|---|
Keyboard | Maneja entradas del teclado. |
Mouse | Maneja el movimiento del ratón, clics de botones y la rueda de desplazamiento. |
Touch | Maneja entradas táctiles en dispositivos móviles. |
Gamepad | Maneja botones y sticks analógicos de gamepad. |
Gyro | Maneja la entrada del giroscopio en dispositivos móviles. |
Accelerometer | Maneja la entrada del acelerómetro en dispositivos móviles. |
Teclado
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” es un valor booleano que indica si la entrada fue manejada por el juego. Por ejemplo, es verdadero cuando se escribe en el chat, para que los scripts personalizados puedan ignorar las teclas relacionadas con el chat.
Ratón
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)
Toque
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)
Gamepad
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)
Giroscopio
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
Acelerómetro
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
Si encuentras útil este tutorial y deseas apoyar mi trabajo, considera invitarme a un café.
¡Muchas gracias por tu apoyo!
Invítame a un café