Hi I'm making my own camera and I'm using Raycasting to detect walls between the camera and the character.

However, although it does not error, when your camera is blocked by a wall it glitches and goes up and down up and down, very annoying.

if you can relate, its a little similar to making a 3D mouse cursor and not making it "ignore" itself..

heres's the code, how can I prevent that from happening.

local createRayAndFindColliding=function(origin,dest,length)
		local ray=Ray.new(origin,(dest-origin).unit * length)
		local ignore={ray}
		local collidePart, collideCoord=workspace:FindPartOnRayWithIgnoreList(ray,plr.Character:GetChildren());
		return ray,collidePart,collideCoord;
end		


game:GetService("RunService").RenderStepped:connect(function()
	if changing==false then
		local ray,collidePart,collideCoord=createRayAndFindColliding(plr.Character.Head.Position,cam.CoordinateFrame.p,50)
		print(collideCoord)
		print(collidePart)
		if not collidePart then
			cam.CoordinateFrame=CFrame.new(plr.Character.Torso.CFrame.p+currentCamView,plr.Character.Torso.Position)
		elseif collidePart and collidePart:IsA("BasePart") and collidePart.Name~="Terrain"  then
			cam.CoordinateFrame=CFrame.new(collideCoord,plr.Character.Torso.Position)
		else
			cam.CoordinateFrame=CFrame.new(plr.Character.Torso.CFrame.p+currentCamView,plr.Character.Torso.Position)
		end
	end
end)