Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Is there a way to see if a coordinate is lit by a point light?

Asked by
Viking359 161
6 years ago

I have a teleport script that I want to only teleport into unlit areas. I have a working script, but I'm afraid that if I add too many lights it will lag.

script.Parent.Activated:Connect(function()--the relevant function
    local mouse = player:GetMouse()
    local hit = mouse.Hit
    local h = hit.p
    local a = true
    if mouse.Target and b == true then
    for _, part in pairs(game.Workspace.Lights:GetChildren()) do
local m = (mouse.Target.Position - part.Position).magnitude
if m <= part.PointLight.Range then
    a = false
end
end
    if a == true then   
    fadeout()
    player.Character:MoveTo(h)  
    fadein()
    else
            local gui = game:GetService("ReplicatedStorage").Gui.Warning:Clone()
    gui.Parent = player.PlayerGui
    end
b = false
    wait(.75)
    b = true    
end
end)

Is there a way to see if the place I'm teleporting to is lit without going through each light in the folder?

Answer this question