Ghi chú phát hành
Học
Lớp công cụ
UserInputService
Không Thể Tạo
Dịch Vụ
Không Sao Chép

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm Tắt
Sự Kiện
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
Thành viên kế thừa

Tài Liệu Tham Khảo API
Thuộc Tính
AccelerometerEnabled
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.AccelerometerEnabled:boolean
Mẫu mã
Di chuyển một quả bóng bằng cảm biến gia tốc
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
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.GamepadEnabled:boolean

GyroscopeEnabled
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.GyroscopeEnabled:boolean

KeyboardEnabled
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.KeyboardEnabled:boolean

ModalEnabled
Đã Lỗi Thời

MouseBehavior
Đọc Song Song
Các khả năng: Input
UserInputService.MouseBehavior:Enum.MouseBehavior

MouseDeltaSensitivity
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.MouseDeltaSensitivity:number

MouseEnabled
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.MouseEnabled:boolean

MouseIcon
Đọc Song Song
Các khả năng: Input
UserInputService.MouseIcon:ContentId
Mẫu mã
Biểu tượng chuột tùy chỉnh
local UserInputService = game:GetService("UserInputService")
-- Để khôi phục con trỏ về trạng thái mà nó đã được đặt trước đó, nó cần được lưu vào một biến
local savedCursor = nil
local function setTemporaryCursor(cursor: string)
-- Chỉ cập nhật con trỏ đã lưu nếu nó chưa được lưu
if not savedCursor then
savedCursor = UserInputService.MouseIcon
end
UserInputService.MouseIcon = cursor
end
local function clearTemporaryCursor()
-- Chỉ khôi phục con trỏ chuột nếu có một con trỏ đã lưu để khôi phục
if savedCursor then
UserInputService.MouseIcon = savedCursor
-- Đừng khôi phục cùng một con trỏ hai lần (có thể ghi đè lên một script khác)
savedCursor = nil
end
end
setTemporaryCursor("http://www.roblox.com/asset?id=163023520")
print(UserInputService.MouseIcon)
clearTemporaryCursor()

MouseIconContent
Đọc Song Song
Các khả năng: Input
UserInputService.MouseIconContent:Content
Mẫu mã
Biểu tượng chuột tùy chỉnh
local UserInputService = game:GetService("UserInputService")
-- Để khôi phục con trỏ về trạng thái mà nó đã được đặt trước đó, nó cần được lưu vào một biến
local savedCursor = nil
local function setTemporaryCursor(cursor: string)
-- Chỉ cập nhật con trỏ đã lưu nếu nó chưa được lưu
if not savedCursor then
savedCursor = UserInputService.MouseIcon
end
UserInputService.MouseIcon = cursor
end
local function clearTemporaryCursor()
-- Chỉ khôi phục con trỏ chuột nếu có một con trỏ đã lưu để khôi phục
if savedCursor then
UserInputService.MouseIcon = savedCursor
-- Đừng khôi phục cùng một con trỏ hai lần (có thể ghi đè lên một script khác)
savedCursor = nil
end
end
setTemporaryCursor("http://www.roblox.com/asset?id=163023520")
print(UserInputService.MouseIcon)
clearTemporaryCursor()

MouseIconEnabled
Đọc Song Song
Các khả năng: Input
UserInputService.MouseIconEnabled:boolean

OnScreenKeyboardPosition
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.OnScreenKeyboardPosition:Vector2

OnScreenKeyboardSize
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.OnScreenKeyboardSize:Vector2

OnScreenKeyboardVisible
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.OnScreenKeyboardVisible:boolean

PreferredInput
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.PreferredInput:Enum.PreferredInput
Mẫu mã
Phát Hiện Đầu Vào Ưu Tiên
local UserInputService = game:GetService("UserInputService")
local function preferredInputChanged()
local preferredInput = UserInputService.PreferredInput
if preferredInput == Enum.PreferredInput.Touch then
-- Người chơi đang sử dụng thiết bị hỗ trợ cảm ứng mà không có loại đầu vào nào khác có sẵn/kết nối
print("Cảm Ứng")
elseif preferredInput == Enum.PreferredInput.Gamepad then
-- Người chơi đã kết nối hoặc tương tác gần nhất với một gamepad
print("Gamepad")
elseif preferredInput == Enum.PreferredInput.KeyboardAndMouse then
-- Người chơi đã kết nối hoặc tương tác gần nhất với một bàn phím hoặc chuột
print("Bàn Phím Và Chuột")
end
end
preferredInputChanged()
UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(function()
preferredInputChanged()
end)

TouchEnabled
Chỉ Đọc
Không Sao Chép
Đọc Song Song
Các khả năng: Input
UserInputService.TouchEnabled:boolean

TouchScreenEnabled
Chỉ Đọc
Không Sao Chép
Bảo Mật Kịch Bản Roblox
Đọc Song Song
Các khả năng: Input
UserInputService.TouchScreenEnabled:boolean

UserHeadCFrame
Đã Lỗi Thời

VREnabled
Đã Lỗi Thời

Phương Pháp
CreateVirtualInput
Các khả năng: Input
UserInputService:CreateVirtualInput():Object
Lợi Nhuận

GamepadSupports
Các khả năng: Input
UserInputService:GamepadSupports(
gamepadNum:Enum.UserInputType, gamepadKeyCode:Enum.KeyCode
Tham Số
gamepadKeyCode:Enum.KeyCode
Lợi Nhuận

GetConnectedGamepads
Các khả năng: Input
UserInputService:GetConnectedGamepads():{any}
Lợi Nhuận

GetDeviceAcceleration
Các khả năng: Input
UserInputService:GetDeviceAcceleration():InputObject
Lợi Nhuận
Mẫu mã
Gia Tốc Thiết Bị Đầu Ra
local UserInputService = game:GetService("UserInputService")
if UserInputService.AccelerometerEnabled then
local acceleration = UserInputService:GetDeviceAcceleration().Position
print(acceleration)
else
warn("Không thể lấy gia tốc thiết bị vì thiết bị không có gia tốc kế được bật!")
end

GetDeviceGravity
Các khả năng: Input
UserInputService:GetDeviceGravity():InputObject
Lợi Nhuận
Mẫu mã
Di chuyển đối tượng bằng cảm biến con quay
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
-- Liên kết sự kiện khi cảm biến con quay phát hiện sự thay đổi
UserInputService.DeviceGravityChanged:Connect(function(accel)
-- Di chuyển bong bóng trong thế giới dựa trên dữ liệu cảm biến con quay
bubble.Position = Vector3.new(-8 * accel.Position.X, 1.8, -8 * accel.Position.Z)
end)
end

GetDeviceRotation
Các khả năng: Input
UserInputService:GetDeviceRotation():Tuple
Lợi Nhuận
Mẫu mã
Quay thiết bị đầu ra
local UserInputService = game:GetService("UserInputService")
if UserInputService.GyroscopeEnabled then
local _, cf = UserInputService:GetDeviceRotation()
print(cf)
else
warn("Không thể lấy thông tin quay của thiết bị vì thiết bị không có gyroscope được bật!")
end

GetFocusedTextBox
Các khả năng: Input
UserInputService:GetFocusedTextBox():TextBox
Lợi Nhuận

GetGamepadConnected
Các khả năng: Input
UserInputService:GetGamepadConnected(gamepadNum:Enum.UserInputType):boolean
Tham Số
Lợi Nhuận

GetGamepadState
Các khả năng: Input
UserInputService:GetGamepadState(gamepadNum:Enum.UserInputType):{InputObject}
Tham Số
Lợi Nhuận

GetImageForKeyCode
Các khả năng: Input
UserInputService:GetImageForKeyCode(keyCode:Enum.KeyCode):ContentId
Tham Số
keyCode:Enum.KeyCode
Lợi Nhuận
ContentId
Mẫu mã
UserInputService - Lấy Hình Ảnh Cho KeyCode
local UserInputService = game:GetService("UserInputService")
local imageLabel = script.Parent
local key = Enum.KeyCode.ButtonA
local mappedIconImage = UserInputService:GetImageForKeyCode(key)
imageLabel.Image = mappedIconImage

GetKeysPressed
Các khả năng: Input
UserInputService:GetKeysPressed():{InputObject}
Lợi Nhuận

GetLastInputType
Các khả năng: Input
UserInputService:GetLastInputType():Enum.UserInputType
Lợi Nhuận
Mẫu mã
Phát hiện loại đầu vào cuối cùng
local UserInputService = game:GetService("UserInputService")
if UserInputService:GetLastInputType() == Enum.UserInputType.Keyboard then
print("Đầu vào gần đây nhất là từ bàn phím!")
end

GetMouseButtonsPressed
Các khả năng: Input
UserInputService:GetMouseButtonsPressed():{InputObject}
Lợi Nhuận
Mẫu mã
Kiểm Tra Các Nút Chuột Được Nhấn
local UserInputService = game:GetService("UserInputService")
UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
-- Trả về một mảng của các nút chuột đã được nhấn
local buttonsPressed = UserInputService:GetMouseButtonsPressed()
local m1, m2 = false, false
for _, button in buttonsPressed do
if button.UserInputType == Enum.UserInputType.MouseButton1 then
print("Nút MouseButton1 đã được nhấn!")
m1 = true
end
if button.UserInputType == Enum.UserInputType.MouseButton2 then
print("Nút MouseButton2 đã được nhấn!")
m2 = true
end
if m1 and m2 then
print("Cả hai nút chuột đều được nhấn!")
end
end
end)

GetMouseDelta
Các khả năng: Input
UserInputService:GetMouseDelta():Vector2
Lợi Nhuận
Mẫu mã
Lấy Delta Chuột
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("Chuột đã di chuyển", delta, "kể từ bước cuối cùng")
end
end
RunService:BindToRenderStep("MeasureMouseMovement", Enum.RenderPriority.Input.Value, onRenderStep)

GetMouseLocation
Các khả năng: Input
UserInputService:GetMouseLocation():Vector2
Lợi Nhuận

GetNavigationGamepads
Các khả năng: Input
UserInputService:GetNavigationGamepads():{any}
Lợi Nhuận

GetStringForKeyCode
Các khả năng: Input
UserInputService:GetStringForKeyCode(
Tham Số
keyCode:Enum.KeyCode
Giá Trị Mặc Định: "Default"
Lợi Nhuận

GetSupportedGamepadKeyCodes
Các khả năng: Input
UserInputService:GetSupportedGamepadKeyCodes(gamepadNum:Enum.UserInputType):{any}
Tham Số
Lợi Nhuận

GetUserCFrame
Đã Lỗi Thời

IsGamepadButtonDown
Các khả năng: Input
UserInputService:IsGamepadButtonDown(
gamepadNum:Enum.UserInputType, gamepadKeyCode:Enum.KeyCode
Tham Số
gamepadKeyCode:Enum.KeyCode
Lợi Nhuận

IsKeyDown
Các khả năng: Input
UserInputService:IsKeyDown(keyCode:Enum.KeyCode):boolean
Tham Số
keyCode:Enum.KeyCode
Lợi Nhuận

IsMouseButtonPressed
Các khả năng: Input
UserInputService:IsMouseButtonPressed(mouseButton:Enum.UserInputType):boolean
Tham Số
mouseButton:Enum.UserInputType
Lợi Nhuận

IsNavigationGamepad
Các khả năng: Input
UserInputService:IsNavigationGamepad(gamepadEnum:Enum.UserInputType):boolean
Tham Số
gamepadEnum:Enum.UserInputType
Lợi Nhuận

RecenterUserHeadCFrame
Các khả năng: Input
UserInputService:RecenterUserHeadCFrame():()
Lợi Nhuận
()

SetNavigationGamepad
Các khả năng: Input
UserInputService:SetNavigationGamepad(
gamepadEnum:Enum.UserInputType, enabled:boolean
):()
Tham Số
gamepadEnum:Enum.UserInputType
enabled:boolean
Lợi Nhuận
()

Sự Kiện
DeviceAccelerationChanged
Các khả năng: Input
UserInputService.DeviceAccelerationChanged(acceleration:InputObject):RBXScriptSignal
Tham Số
acceleration:InputObject
Mẫu mã
Điều Khiển Người Chơi Bằng Cảm Biến Gia Tốc
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 -- Nhảy
end
if accel.Z <= -SENSITIVITY then
humanoid:Move(Vector3.new(-1, 0, 0)) -- Di chuyển trái
end
if accel.Z >= SENSITIVITY then
humanoid:Move(Vector3.new(1, 0, 0)) -- Di chuyển phải
end
if accel.X <= -SENSITIVITY then
humanoid:Move(Vector3.new(0, 0, 1)) -- Di chuyển lên
end
if accel.X >= SENSITIVITY then
humanoid:Move(Vector3.new(0, 0, -1)) -- Di chuyển xuống
end
task.wait(1)
ready = true
end
end
if UserInputService.AccelerometerEnabled then
UserInputService.DeviceAccelerationChanged:Connect(changeAcceleration)
end

DeviceGravityChanged
Các khả năng: Input
UserInputService.DeviceGravityChanged(gravity:InputObject):RBXScriptSignal
Tham Số
gravity:InputObject
Mẫu mã
Di chuyển một quả bóng bằng cảm biến gia tốc
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
Các khả năng: Input
UserInputService.DeviceRotationChanged(
rotation:InputObject, cframe:CFrame
Tham Số
rotation:InputObject
cframe:CFrame

GamepadConnected
Các khả năng: Input
UserInputService.GamepadConnected(gamepadNum:Enum.UserInputType):RBXScriptSignal
Tham Số

GamepadDisconnected
Các khả năng: Input
UserInputService.GamepadDisconnected(gamepadNum:Enum.UserInputType):RBXScriptSignal
Tham Số

InputBegan
Các khả năng: Input
UserInputService.InputBegan(
input:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

InputChanged
Các khả năng: Input
UserInputService.InputChanged(
input:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

InputEnded
Các khả năng: Input
UserInputService.InputEnded(
input:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

JumpRequest
Các khả năng: Input
UserInputService.JumpRequest():RBXScriptSignal
Mẫu mã
Vô hiệu hóa Nhảy Mặc định
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
-- Xử lý yêu cầu nhảy tùy chỉnh
print("Yêu cầu nhảy!")
-- Đặt lại biến debounce sau thời gian chờ
task.wait(COOLDOWN_TIME)
processJumpRequest = false
end
end
UserInputService.JumpRequest:Connect(jumpRequest)

LastInputTypeChanged
Các khả năng: Input
UserInputService.LastInputTypeChanged(lastInputType:Enum.UserInputType):RBXScriptSignal
Tham Số
lastInputType:Enum.UserInputType

PointerAction
Các khả năng: Input
UserInputService.PointerAction(
wheel:number, pan:Vector2, pinch:number, gameProcessedEvent:boolean
Tham Số
wheel:number
pinch:number
gameProcessedEvent:boolean

TextBoxFocused
Các khả năng: Input
UserInputService.TextBoxFocused(textboxFocused:TextBox):RBXScriptSignal
Tham Số
textboxFocused:TextBox
Mẫu mã
Sửa đổi TextBox khi được chọn và khi không còn được chọn
local UserInputService = game:GetService("UserInputService")
local function textBoxFocused(textBox)
textBox.BackgroundTransparency = 0 -- Đặt độ trong suốt của nền thành 0 khi được chọn
end
local function textBoxFocusReleased(textBox)
textBox.BackgroundTransparency = 0.5 -- Đặt độ trong suốt của nền thành 0.5 khi không còn được chọn
end
UserInputService.TextBoxFocused:Connect(textBoxFocused)
UserInputService.TextBoxFocusReleased:Connect(textBoxFocusReleased)

TextBoxFocusReleased
Các khả năng: Input
UserInputService.TextBoxFocusReleased(textboxReleased:TextBox):RBXScriptSignal
Tham Số
textboxReleased:TextBox
Mẫu mã
Sửa đổi TextBox khi được chọn và khi không còn được chọn
local UserInputService = game:GetService("UserInputService")
local function textBoxFocused(textBox)
textBox.BackgroundTransparency = 0 -- Đặt độ trong suốt của nền thành 0 khi được chọn
end
local function textBoxFocusReleased(textBox)
textBox.BackgroundTransparency = 0.5 -- Đặt độ trong suốt của nền thành 0.5 khi không còn được chọn
end
UserInputService.TextBoxFocused:Connect(textBoxFocused)
UserInputService.TextBoxFocusReleased:Connect(textBoxFocusReleased)

TouchDrag
Các khả năng: Input
UserInputService.TouchDrag(
dragDirection:Enum.SwipeDirection, numberOfTouches:number, gameProcessedEvent:boolean
Tham Số
dragDirection:Enum.SwipeDirection
numberOfTouches:number
gameProcessedEvent:boolean

TouchEnded
Các khả năng: Input
UserInputService.TouchEnded(
touch:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

TouchLongPress
Các khả năng: Input
UserInputService.TouchLongPress(
touchPositions:{any}, state:Enum.UserInputState, gameProcessedEvent:boolean
Tham Số
touchPositions:{any}
gameProcessedEvent:boolean

TouchMoved
Các khả năng: Input
UserInputService.TouchMoved(
touch:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

TouchPan
Các khả năng: Input
UserInputService.TouchPan(
touchPositions:{any}, totalTranslation:Vector2, velocity:Vector2, state:Enum.UserInputState, gameProcessedEvent:boolean
Tham Số
touchPositions:{any}
totalTranslation:Vector2
velocity:Vector2
gameProcessedEvent:boolean

TouchPinch
Các khả năng: Input
UserInputService.TouchPinch(
touchPositions:{any}, scale:number, velocity:number, state:Enum.UserInputState, gameProcessedEvent:boolean
Tham Số
touchPositions:{any}
scale:number
velocity:number
gameProcessedEvent:boolean

TouchRotate
Các khả năng: Input
UserInputService.TouchRotate(
touchPositions:{any}, rotation:number, velocity:number, state:Enum.UserInputState, gameProcessedEvent:boolean
Tham Số
touchPositions:{any}
rotation:number
velocity:number
gameProcessedEvent:boolean

TouchStarted
Các khả năng: Input
UserInputService.TouchStarted(
touch:InputObject, gameProcessedEvent:boolean
Tham Số
gameProcessedEvent:boolean

TouchSwipe
Các khả năng: Input
UserInputService.TouchSwipe(
swipeDirection:Enum.SwipeDirection, numberOfTouches:number, gameProcessedEvent:boolean
Tham Số
swipeDirection:Enum.SwipeDirection
numberOfTouches:number
gameProcessedEvent:boolean

TouchTap
Các khả năng: Input
UserInputService.TouchTap(
touchPositions:{any}, gameProcessedEvent:boolean
Tham Số
touchPositions:{any}
gameProcessedEvent:boolean

TouchTapInWorld
Các khả năng: Input
UserInputService.TouchTapInWorld(
position:Vector2, processedByUI:boolean
Tham Số
position:Vector2
processedByUI:boolean

UserCFrameChanged
Đã Lỗi Thời

WindowFocused
Các khả năng: Input
UserInputService.WindowFocused():RBXScriptSignal

WindowFocusReleased
Các khả năng: Input
UserInputService.WindowFocusReleased():RBXScriptSignal
Mẫu mã
Kịch bản Mất Tập Trung Cửa Sổ (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)
Kịch bản Mất Tiêu (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 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.