Hello! I created an advanced camera system, however, it only runs once.
local RunService = game:GetService("RunService")
local Player = game.Players.LocalPlayer
local Camera = workspace.CurrentCamera
local Character = Player.Character or Player.CharacterAdded:Wait()
local OutdoorCamera
local GoingInsideCamera
local function CreateOutdoorCamera()
local offset = Vector3.new(0, 0, 30)
local FOV = 35
Camera.FieldOfView = FOV
OutdoorCamera = RunService.RenderStepped:Connect(function()
local PlayerPosition = Character.HumanoidRootPart.Position
local CameraPosition = PlayerPosition + offset
Camera.CoordinateFrame = CFrame.new(CameraPosition, PlayerPosition)
end)
end
game.ReplicatedStorage.DoCamera.OnClientEvent:Connect(function(TheCamera, Door, doCFrame)
if TheCamera == "Stick" then
local CameraCFrame = Camera.CFrame
OutdoorCamera:Disconnect()
GoingInsideCamera = RunService.RenderStepped:Connect(function()
Camera.CFrame = CameraCFrame
end)
elseif TheCamera == "Fixed" then
GoingInsideCamera:Disconnect()
OutdoorCamera:Disconnect()
Camera.FieldOfView = 70
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CameraSubject = Door
if doCFrame == true then
Camera.CFrame = Door.CFrame
end
else
CreateOutdoorCamera()
end
end)
CreateOutdoorCamera()
Everything works only once, then you have to rejoin the game.
If you can help, please let me know. Thanks! WE