Basically I want to make something that doesn’t allow the player to move the camera on the Y and Z axis for example.
Is there any way to do it?
I didn’t find anything on the forum so I created a topic
Please help!!!
Basically I want to make something that doesn’t allow the player to move the camera on the Y and Z axis for example.
Is there any way to do it?
I didn’t find anything on the forum so I created a topic
Please help!!!
in StarterPlayer → StarterCharacterScripts create local script and paste this:
local Players = game:GetService("Players").LocalPlayer
local char = script.Parent
local hrp = char:WaitForChild("HumanoidRootPart")
local cam = workspace.CurrentCamera
cam.CameraType = Enum.CameraType.Scriptable
--folder for camera
local PlayerCamera = Instance.new("Folder")
PlayerCamera.Parent = workspace
PlayerCamera.Name = "PlayerCamera"
--camera
local cameraPart = Instance.new("Part")
cameraPart.Transparency = 1
cameraPart.CanCollide = false
cameraPart.Parent = workspace.PlayerCamera
cameraPart.CFrame = CFrame.new(hrp.Position + Vector3.new(-30,10,0), hrp.Position) -->camera angle
--camera move
local bp = Instance.new("BodyPosition")
bp.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bp.P = 100000 --> camera speed
bp.Parent = cameraPart
--loop
game:GetService("RunService").RenderStepped:Connect(function()
bp.Position = hrp.Position + Vector3.new(-20, 6, 0) --> X = approach, Y = up down, Z = left right,
cam.CFrame = cameraPart.CFrame
end)
Thanks but the camera doesn’t follow the player movements, I’ll give you an example:
It should look like this, the player can’t look up or down
To do this, you have to set the camera’s Y-axis to the target, then make it face towards the target.
Here’s a line of code that should help you with doing this.
-- The root is the camera subject (ie the head)
-- The rest is self-explanatory
-- Why multiply by Vector3.new(1, 0, 1)? Well, what happens when you multiply any number by zero?
-- It becomes zero. Multiplying by one does nothing.
-- We set the Y axis to zero so that it becomes zero.
local newCameraCFrame = CFrame.new(
root - (cameraCFrame.LookVector * Vector3.new(1, 0, 1) * zoomOutDistance),
root -- LookAt
)
Stop giving people entire scripts and not explaining what they do.