This script changes the player's camera via a cam part. The cam part it connected to a moving part, but the camera just stays there unless you spam click the GUI button.

Script:

local Camera = game.Workspace.CurrentCamera
local Players = game.Players.LocalPlayer
local button = game.Players.LocalPlayer:FindFirstChild("PlayerGui").Camera.TextButton

button.MouseButton1Click:Connect(function(player)
repeat wait() until Players.Character

Camera.CameraType = "Scriptable"
Camera.CFrame = workspace.Rocket.Rocket.CamPart.CFrame

game.Players.LocalPlayer:FindFirstChild("PlayerGui").Exitcamera.Enabled = true
game.Players.LocalPlayer:FindFirstChild("PlayerGui").Camera.Enabled = false

end)

repeat button.Mousebutton1Click:connect(function(player)
	
	

end)

until game.Players.LocalPlayer:FindFirstChild("PlayerGui").Exitcamera.X.MouseButton1Click:connect(function(player)
	button.Enabled = true
	game.Players.LocalPlayer:FindFirstChild("PlayerGui").ExitCamera.X.Enabled = false
	
end)