local Players = game:GetService("Players") local player = Players.LocalPlayer local mouse = player:GetMouse() local Camera = workspace.CurrentCamera local cams = {} local maxCameras = 10 local currentCamIndex = nil local screenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) screenGui.Name = "CameraSystemMobile" local tabletButton = Instance.new("TextButton", screenGui) tabletButton.Size = UDim2.new(0, 120, 0, 50) tabletButton.Position = UDim2.new(0, 10, 1, -60) tabletButton.Text = "Открыть камеры" tabletButton.BackgroundColor3 = Color3.fromRGB(50, 50, 50) tabletButton.TextColor3 = Color3.new(1, 1, 1) local cameraList = Instance.new("Frame", screenGui) cameraList.Size = UDim2.new(0, 200, 0, 300) cameraList.Position = UDim2.new(0, 10, 1, -370) cameraList.BackgroundColor3 = Color3.fromRGB(40, 40, 40) cameraList.Visible = false local cameraListLayout = Instance.new("UIListLayout", cameraList) cameraListLayout.SortOrder = Enum.SortOrder.LayoutOrder cameraListLayout.Padding = UDim.new(0, 5) local closeList = Instance.new("TextButton", cameraList) closeList.Size = UDim2.new(1, -10, 0, 30) closeList.Text = "Закрыть" closeList.BackgroundColor3 = Color3.fromRGB(100, 0, 0) closeList.TextColor3 = Color3.new(1, 1, 1) closeList.LayoutOrder = -1 closeList.MouseButton1Click:Connect(function() cameraList.Visible = false end) local controlFrame = Instance.new("Frame", screenGui) controlFrame.Size = UDim2.new(0, 160, 0, 160) controlFrame.Position = UDim2.new(1, -170, 1, -170) controlFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) controlFrame.Visible = false local function createControl(name, text, pos, callback) local btn = Instance.new("TextButton", controlFrame) btn.Size = UDim2.new(0, 50, 0, 50) btn.Position = pos btn.Text = text btn.BackgroundColor3 = Color3.fromRGB(70, 70, 70) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSansBold btn.TextScaled = true btn.MouseButton1Click:Connect(callback) end createControl("Up", "↑", UDim2.new(0.33, 0, 0, 0), function() if currentCamIndex and cams[currentCamIndex] then cams[currentCamIndex].CFrame *= CFrame.Angles(-math.rad(5), 0, 0) Camera.CFrame = cams[currentCamIndex].CFrame + cams[currentCamIndex].CFrame.LookVector end end) createControl("Down", "↓", UDim2.new(0.33, 0, 1, -50), function() if currentCamIndex and cams[currentCamIndex] then cams[currentCamIndex].CFrame *= CFrame.Angles(math.rad(5), 0, 0) Camera.CFrame = cams[currentCamIndex].CFrame + cams[currentCamIndex].CFrame.LookVector end end) createControl("Left", "←", UDim2.new(0, 0, 0.5, -25), function() if currentCamIndex and cams[currentCamIndex] then cams[currentCamIndex].CFrame *= CFrame.Angles(0, -math.rad(5), 0) Camera.CFrame = cams[currentCamIndex].CFrame + cams[currentCamIndex].CFrame.LookVector end end) createControl("Right", "→", UDim2.new(1, -50, 0.5, -25), function() if currentCamIndex and cams[currentCamIndex] then cams[currentCamIndex].CFrame *= CFrame.Angles(0, math.rad(5), 0) Camera.CFrame = cams[currentCamIndex].CFrame + cams[currentCamIndex].CFrame.LookVector end end) tabletButton.MouseButton1Click:Connect(function() cameraList.Visible = not cameraList.Visible end) local placeTool = player.Backpack:FindFirstChild("PlaceCamera") if not placeTool then placeTool = Instance.new("Tool") placeTool.Name = "PlaceCamera" placeTool.RequiresHandle = false placeTool.Parent = player.Backpack end placeTool.Activated:Connect(function() if #cams >= maxCameras then return end local hit = mouse.Hit if hit then local part = Instance.new("Part", workspace) part.Size = Vector3.new(1, 1, 1) part.Anchored = true part.CanCollide = false part.Position = hit.p part.Name = "CamPart" local camIndex = #cams + 1 table.insert(cams, part) local btn = Instance.new("TextButton", cameraList) btn.Size = UDim2.new(1, -10, 0, 30) btn.Text = "Камера " .. camIndex btn.BackgroundColor3 = Color3.fromRGB(80, 80, 80) btn.TextColor3 = Color3.new(1, 1, 1) btn.MouseButton1Click:Connect(function() if cams[camIndex] then currentCamIndex = camIndex Camera.CameraType = Enum.CameraType.Scriptable Camera.CFrame = cams[camIndex].CFrame + cams[camIndex].CFrame.LookVector controlFrame.Visible = true cameraList.Visible = false end end) end end) local resetButton = Instance.new("TextButton", controlFrame) resetButton.Size = UDim2.new(1, 0, 0, 30) resetButton.Position = UDim2.new(0, 0, 1, -30) resetButton.Text = "Выйти" resetButton.BackgroundColor3 = Color3.fromRGB(120, 0, 0) resetButton.TextColor3 = Color3.new(1, 1, 1) resetButton.MouseButton1Click:Connect(function() currentCamIndex = nil Camera.CameraType = Enum.CameraType.Custom controlFrame.Visible = false end)