local userInputService = game:GetService("UserInputService")
local player = game:GetService("Players").LocalPlayer
local camera = workspace.CurrentCamera
local isMouseFree = false
local isRightMouseDown = false
local function toggleMouse()
isMouseFree = not isMouseFree
if isMouseFree then
-- Используем Classic, чтобы курсор свободно перемещался по экрану
userInputService.MouseBehavior = Enum.MouseBehavior.Classic
userInputService.MouseIconEnabled = true
print("Мышь свободна!")
else
userInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
userInputService.MouseIconEnabled = false
isRightMouseDown = false
print("Управление камерой возвращено")
end
end
userInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
-- Переключение по клавише V
if input.KeyCode == Enum.KeyCode.V then
toggleMouse()
end
-- Если мышь свободна и зажали ПКМ — даем крутить камеру
if input.UserInputType == Enum.UserInputType.MouseButton2 and isMouseFree then
isRightMouseDown = true
userInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
end
end)
userInputService.InputEnded:Connect(function(input)
-- Отпустили ПКМ — возвращаем свободный курсор
if input.UserInputType == Enum.UserInputType.MouseButton2 and isMouseFree then
isRightMouseDown = false
userInputService.MouseBehavior = Enum.MouseBehavior.Classic
end
end)