local Camerachange = game.Workspace.Change
local touched = false
-- ================================================================

-- // Camera Variables

local CamOffset = Vector3.new(10, 5.5, 20)
local CamLookDirection = Vector3.new(0, 0, -1)
local angle = CFrame.Angles(0,-45,0)

local camera = game.Workspace.CurrentCamera
local player = game.Players.LocalPlayer
local RunService = game:GetService('RunService')


-- ================================================================

Camerachange.Touched:connect(function(hit)
	if not touched then
		
		touched = true
		wait(1)
		print("I've passed!")
		-- ================================================================
	
		-- // Stuff
		
		local function setupCamera()
			camera.CoordinateFrame = CFrame.new(player.Character.HumanoidRootPart.Position + CamOffset,
                             player.Character.HumanoidRootPart.Position + CamOffset + CamLookDirection)
		end	
		
		player.CharacterAdded:connect(setupCamera)
		
		
		local function onUpdate()
			if player.Character and player.Character:FindFirstChild('HumanoidRootPart') then
        camera.CoordinateFrame = camera.CoordinateFrame:lerp(
                                 CFrame.new(player.Character.HumanoidRootPart.Position + CamOffset,
                                 player.Character.HumanoidRootPart.Position + CamOffset + CamLookDirection), 0.2 )
		end
	end
	
	-- ===
	
	-- // Changing Angles
	
	camera.CoordinateFrame = angle	
	
		
	-- ===
	RunService:BindToRenderStep('Camera', Enum.RenderPriority.Camera.Value, onUpdate)
		-- ================================================================	
	
		touched = false	
	
	
	end
end)

It changes it to -45 angle for a milisecond, but then it goes on default again, any fix to it?