How could this be more efficient? When a player holds the left mouse button and moves it around it glitches the camera.
repeat wait() until game:GetService("Players").LocalPlayer
local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:wait()
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Progress = ReplicatedStorage:WaitForChild("Progress")
local MapHolder = workspace:WaitForChild("MapHolder")
local SelectedMap = ReplicatedStorage:WaitForChild("SelectedMap")
local Playing = Player:WaitForChild("Playing")
local CurrentCamera = workspace.CurrentCamera
Angle = 0
function UpdateCamera()
if Progress.Value == true and Playing.Value == false and Character:FindFirstChild("Humanoid") and Character:FindFirstChild("Humanoid").Health > 0 then
CurrentCamera.CameraSubject = MapHolder:FindFirstChild(SelectedMap.Value):FindFirstChild("PartCAM")
elseif Progress.Value == false and Playing.Value == false and Character:FindFirstChild("Humanoid").Health > 0 then
CurrentCamera.CameraSubject = workspace.Lobby:FindFirstChild("PartCAM")
elseif Progress.Value == true and Playing.Value == true then
CurrentCamera.CameraSubject = Character:FindFirstChild("Humanoid")
end
end
Playing.Changed:connect(UpdateCamera)
Progress.Changed:connect(UpdateCamera)
UpdateCamera()
while wait() do
if Progress.Value == true and Playing.Value == false and Character:FindFirstChild("Humanoid") and Character:FindFirstChild("Humanoid").Health > 0 then
CurrentCamera.CoordinateFrame = CFrame.new(MapHolder:FindFirstChild(SelectedMap.Value):FindFirstChild("PartCAM").Position) * CFrame.Angles(0, Angle, 0) * CFrame.new(0, 0, -25)
elseif Progress.Value == false and Playing.Value == false and Character:FindFirstChild("Humanoid").Health > 0 then
CurrentCamera.CoordinateFrame = CFrame.new(workspace.Lobby:FindFirstChild("PartCAM").Position) * CFrame.Angles(0, Angle, 0) * CFrame.new(0, 0, -25)
end
Angle = Angle + math.rad(1)
end
