Is there a way to get info of all the points/segments of a beam? Like, for example:
local segments = Beam:GetSegments()
for i, seg in segments do
print(seg.Position)
end
Or something similar.
Any help is highly appreciated!
Is there a way to get info of all the points/segments of a beam? Like, for example:
local segments = Beam:GetSegments()
for i, seg in segments do
print(seg.Position)
end
Or something similar.
Any help is highly appreciated!
You have to write your own code for it.
Roblox beams use the Cubic Bezier Curve.
local DEBUG = require(game.ReplicatedStorage.GameLib.DebugModule)
local beam = script.Parent.Beam
local function beamPos(beam: Beam, t: number)
-- get the bezier position of the beam given the percentage t
local p0 = beam.Attachment0.WorldCFrame
local p1 = p0 * CFrame.new(1 * beam.CurveSize0,0,0)
local p3 = beam.Attachment1.WorldCFrame
local p2 = p3 * CFrame.new(-1 * beam.CurveSize1,0,0)
p0 = p0.Position
p1 = p1.Position
p2 = p2.Position
p3 = p3.Position
return (1 - t)^3 * p0 + 3 * (1 - t)^2 * t * p1 + 3 * (1 - t) * t^2 * p2 + t^3 * p3
end
while task.wait(0.1) do
DEBUG.setLifeTime(0.1)
for i = 1,beam.Segments do-- draws out point of the segment
DEBUG.drawVector3(beamPos(beam, i/beam.Segments))
end
end
Exactly what I needed. You’re a life saver. Thanks!
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.