Pretty much what the title says, I’m looking for a way to tell how many walls are between two points.
Some Diagrams are below, if anyone can point me in the right direction that would be great, thanks.
I had some idea about Raycasting but its kinda foggy and I’m not sure how I would write the code for it.
I would say you continue to raycast to the point until you find no walls. Ex:
local point1 = Vector3.new(0,0,0)
local point2 = Vector3.new(0,10,0)
function goToPoint(point1, point2, wallnum)
if not wallnum then wallnum = 0 end
local ray = workspace:Raycast(point1, (point2-point1).Unit*(point2-point1).Magnitude)
if ray and ray.Instance then
return goToPoint(ray.Position, point2, wallnum+1)
end
return wallnum
end
print(goToPoint(point1, point2))
Not too sure if this will work, I haven’t tested, but I think it will.
Seems like a hacky solution but would work. Although, I found a much more comfortable solution that seemed to have worked after a little digging. Thank you for your answer though.
function findAllPartsOnRay(ray)
local targets = {}
repeat
local target = game.Workspace:FindPartOnRayWithIgnoreList(ray, targets)
if target then
table.insert(targets, target)
end
until not target
return targets
end