Beam
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un objeto Rayo conecta dos Attachments dibujando una textura entre ellos.
Para mostrar, un rayo debe ser un descendiente del Workspace con sus propiedades Attachment0 y Attachment1 establecidas a Attachments también descendiendo del Workspace .
La apariencia del rayo se puede personalizar utilizando el rango de propiedades detallado a continuación. También vea la guía Rayos para ejemplos visuales.
Curvatura de rayo
Los rayos se configuran para usar una curva Bézier cúbica formada por cuatro puntos de control.Esto significa que no están limitados a líneas rectas y la curva del rayo se puede modificar cambiando CurveSize0, CurveSize1 y la orientación del rayo Attachments.
- P0 — El comienzo del rayo; posición de Attachment0.
- P3 — El final del rayo; posición de Attachment1

Muestras de código
This code sample demonstrates how a Beam effect can be created from scratch by creating a Beam, setting all of its properties and configuring it's Attachments.
-- create attachments
local att0 = Instance.new("Attachment")
local att1 = Instance.new("Attachment")
-- parent to terrain (can be part instead)
att0.Parent = workspace.Terrain
att1.Parent = workspace.Terrain
-- position attachments
att0.Position = Vector3.new(0, 10, 0)
att1.Position = Vector3.new(0, 10, 10)
-- create beam
local beam = Instance.new("Beam")
beam.Attachment0 = att0
beam.Attachment1 = att1
-- appearance properties
beam.Color = ColorSequence.new({ -- a color sequence shifting from white to blue
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 255, 255)),
})
beam.LightEmission = 1 -- use additive blending
beam.LightInfluence = 0 -- beam not influenced by light
beam.Texture = "rbxasset://textures/particles/sparkles_main.dds" -- a built in sparkle texture
beam.TextureMode = Enum.TextureMode.Wrap -- wrap so length can be set by TextureLength
beam.TextureLength = 1 -- repeating texture is 1 stud long
beam.TextureSpeed = 1 -- slow texture speed
beam.Transparency = NumberSequence.new({ -- beam fades out at the end
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.8, 0),
NumberSequenceKeypoint.new(1, 1),
})
beam.ZOffset = 0 -- render at the position of the beam without offset
-- shape properties
beam.CurveSize0 = 2 -- create a curved beam
beam.CurveSize1 = -2 -- create a curved beam
beam.FaceCamera = true -- beam is visible from every angle
beam.Segments = 10 -- default curve resolution
beam.Width0 = 0.2 -- starts small
beam.Width1 = 2 -- ends big
-- parent beam
beam.Enabled = true
beam.Parent = att0
Resumen
Propiedades
El Attachment de donde se origina el rayo.
El Attachment la viga termina en.
Escala la luz emitida por el rayo cuando LightInfluence es menor que 1.
Determina el color del rayo a través de su Segments .
Determina, junto con Attachment0, la posición del segundo punto de control en la curva de Bézier del rayo.
Determina, junto con Attachment1, la posición del tercer punto de control en la curva de Bézier del rayo.
Determina si el rayo es visible o no.
Determina si el Segments de la viga siempre se enfrentará a la cámara, independientemente de su orientación.
Determina hasta qué punto los colores del rayo se mezclan con los colores que están detrás de él.
Determina el grado en que el rayo es influenciado por la iluminación del entorno, ambiente.
Establece cuántos segmentos rectos constituye el rayo.
El ID del contenido de la textura que se mostrará en el rayo.
Establece la longitud de la textura del rayo, dependiente de TextureMode.
Determina la manera en que las Texture escalas y se repiten.
Determina la velocidad a la que la imagen Texture se mueve a lo largo del rayo.
Determina la transparencia del rayo en sus segmentos.
El ancho del rayo en su origen ( Attachment0 ), en studs.
El ancho del rayo en su extremo ( Attachment1 ), en studs.
La distancia, en studs, el display de rayos se desplaza con respecto al CurrentCamera .
Métodos
Establece el desplazamiento actual del ciclo de textura del rayo.
Propiedades
Attachment0
El Attachment de donde se origina el rayo.Este anexo es el primer punto de control en la curva Bézier cúbica del rayo; su orientación, junto con la propiedad CurveSize0, determina la posición del segundo punto de control.Vea Rayos para más detalles.
Para el Attachment donde termina el rayo, vea Attachment1 .
Attachment1
El Attachment la viga termina en.Este anexo es el cuarto y último punto de control en la curva Bézier cúbica del rayo; su orientación, junto con la propiedad CurveSize1, determina la posición del tercer punto de control.Vea Rayos para más detalles.
Para el Attachment donde se origina el rayo, vea Attachment0 .
Brightness
Escala la luz emitida por el rayo cuando LightInfluence es menor que 1.Esta propiedad es 1 por defecto y se puede establecer en cualquier número dentro del rango de 0 a 10000.Aumentar el valor de LightInfluence reduce el efecto del valor de esta propiedad.
Color
Determina el color del rayo a través de su Segments .Si Texture está establecer, este color se aplicará a la textura del rayo.Si no se establecerningún Texture, el Beam aparecerá como una línea sólida de color según esta propiedad.
Esta propiedad es un ColorSequence , que permite que el color se configure para variar a lo largo de la longitud del rayo.Considera el siguiente ColorSequence que, cuando se aplica a un rayo, produciría el resultado pintado.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- RojoColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- CyanColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Morado})

Tenga en cuenta que la coloración del rayo también depende del número de Segments que tenga el Beam.Cada segmento del rayo solo puede mostrar una transición entre dos colores.Por lo tanto, un Beam necesitará tener al menos n-1 segmentos para que el color se muestre correctamente, donde n es el número de ColorSequenceKeypoints en el ColorSequence.
CurveSize0
Determina, junto con Attachment0, la posición del segundo punto de control en la curva de Bézier del rayo. Vea Rayos para más detalles.
La posición de este punto se puede determinar por la siguiente ecuación:
local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)
CurveSize1
Determina, junto con Attachment1, la posición del tercer punto de control en la curva de Bézier del rayo. Vea Rayos para más detalles.
La posición de este punto se puede determinar por la siguiente ecuación:
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Determina si el rayo es visible o no.
Cuando esta propiedad se establece en falso, el rayo Segments no se mostrará.
FaceCamera
Un Beam es una proyección 2D que existe en el espacio 3D, lo que significa que puede que no sea visible desde todos los ángulos.La propiedad Cámara de cara , cuando se establece en true, garantiza que el rayo siempre se dirija al CurrentCamera, independientemente de su orientación.
LightEmission
Determina hasta qué punto los colores del rayo se mezclan con los colores que están detrás de él.Debe establecerse en el rango de 0 a 1.Un valor de 0 usa los modos de mezcla normales y un valor de 1 usa la mezcla aditiva.
Esta propiedad no debe confundirse con LightInfluence que determina cómo se ve afectado el rayo por la luz ambiental.
Esta propiedad no hace no que la viga ilumine el entorno, ambiente.
LightInfluence
Determina el grado en el que el rayo es influenciado por la iluminación del entorno, ambiente, ajustado entre 0 y 1.Cuando 0, el rayo no se verá afectado por la iluminación del entorno, ambiente.Cuando 1, estará completamente afectado por la iluminación como lo estaría BasePart.
Vea también LightEmission que especifica hasta qué punto se mezclan los colores del rayo con los colores que están detrás de él.
LocalTransparencyModifier
Segments
En lugar de ser una curva perfecta, un rayo está compuesto por segmentos rectos.Cuantos más segmentos, mayor es la resolución de la curva.La propiedad segmentos establece cuántos segmentos rectos constituye el rayo, con un valor predeterminado de 10.
Tenga en cuenta que las propiedades Color y Transparency requieren un cierto número de segmentos para mostrarse correctamente.Esto se debe a que cada segmento solo puede mostrar una transición entre dos colores o transparencias.Por lo tanto, un Beam requiere al menos n-1 segmentos para mostrarse correctamente, donde n es el número de punto clave asociado con el rayo de Color y Transparency.
Texture
El ID del contenido de la textura que se mostrará en el rayo.Si esta propiedad no está establecer, el rayo se mostrará como una línea sólida; esto también ocurre cuando la textura se establece en un ID de contenido inválido o la imagen asociada con la textura aún no se ha cargado.
La apariencia de la textura se puede modificar aún más por otras propiedades de rayo, incluidas Color y Transparency.
El escalado de la textura se determina por las propiedades TextureMode, TextureLength, Width0 y Width1.
TextureMode
Esta propiedad, junto con TextureLength, determina cómo se repite un rayo de Texture.
Cuando se establece en Enum.TextureMode.Wrap o Enum.TextureMode.Static, las repeticiones de textura serán iguales a la longitud total del rayo (en studs) dividida por su TextureLength.

Cuando se establece en Enum.TextureMode.Stretch , la textura se repetirá TextureLength veces a lo largo de la longitud total del rayo.

TextureSpeed
Determina la velocidad a la que la imagen Texture se mueve a lo largo del rayo.Cuando esta propiedad es un valor positivo, la textura del rayo se moverá de Attachment0 a Attachment1 .Esta dirección se puede invertir al establecer esta propiedad a un número negativo.
Transparency
Determina la transparencia del rayo en sus segmentos.Esta propiedad es un NumberSequence , permitiendo que la transparencia se configure para variar a lo largo de la longitud del rayo.
Considera el siguiente NumberSequence que, cuando se aplica a un rayo, produciría el resultado pintado.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpacidadNumberSequenceKeypoint.new(0.5, 1), -- TransparenteNumberSequenceKeypoint.new(1, 0), -- Opacidad})

Tenga en cuenta que la transparencia del rayo también depende del número de Segments.Cada segmento del rayo solo puede mostrar una transición entre dos transparencias.Por lo tanto, un rayo necesitará tener al menos n-1 segmentos para mostrarse correctamente, donde n es el número de NumberSequenceKeypoints en el NumberSequence .
Width0
El ancho del rayo en su origen ( Attachment0 ), en studs. El ancho del rayo cambiará linealmente a Width1 studs en su extremo ( Attachment1 ).
Width1
El ancho del rayo al final ( Attachment1 ), en studs. El ancho del rayo cambiará linealmente de Width0 studs en su origen ( Attachment0 ).
ZOffset
La distancia, en studs, el display de rayos se desplaza con respecto al CurrentCamera .Cuando 0, el rayo se mostrará en su posición estándar entre Attachment0 y Attachment1 . ZOffset puede ser positivo o negativo.
Esta propiedad es particularmente útil para evitar la "Z‑lucha" al usar múltiples Beams entre el mismo Attachments.
Muestras de código
This code sample uses the Beam.ZOffset property to layer multiple beams between the same attachments.
-- Create beams
local beam1 = Instance.new("Beam")
beam1.Color = ColorSequence.new(Color3.new(1, 0, 0))
beam1.FaceCamera = true
beam1.Width0 = 3
beam1.Width1 = 3
local beam2 = Instance.new("Beam")
beam2.Color = ColorSequence.new(Color3.new(0, 1, 0))
beam2.FaceCamera = true
beam2.Width0 = 2
beam2.Width1 = 2
local beam3 = Instance.new("Beam")
beam3.Color = ColorSequence.new(Color3.new(0, 0, 1))
beam3.FaceCamera = true
beam3.Width0 = 1
beam3.Width1 = 1
-- Layer beams
beam1.ZOffset = 0
beam2.ZOffset = 0.01
beam3.ZOffset = 0.02
-- Create attachments
local attachment0 = Instance.new("Attachment")
attachment0.Position = Vector3.new(0, -10, 0)
attachment0.Parent = workspace.Terrain
local attachment1 = Instance.new("Attachment")
attachment1.Position = Vector3.new(0, 10, 0)
attachment1.Parent = workspace.Terrain
-- Connect beams
beam1.Attachment0 = attachment0
beam1.Attachment1 = attachment1
beam2.Attachment0 = attachment0
beam2.Attachment1 = attachment1
beam3.Attachment0 = attachment0
beam3.Attachment1 = attachment1
-- Parent beams
beam1.Parent = workspace
beam2.Parent = workspace
beam3.Parent = workspace
Métodos
SetTextureOffset
El desplazamiento del ciclo de textura de un rayo representa el progreso de su animacionesde textura.Este método establece el desplazamiento actual del ciclo de textura del rayo; por lo tanto, se puede usar para restablecer el ciclo pasando 0 como parámetro offset.
Notas
- Se espera que el parámetro dado offset sea un valor entre 0 y 1, pero se pueden usar valores más altos.
- El ciclo de textura se cierra en 0 y 1, lo que significa que la textura está en la misma posición cuando el desplazamiento está en 0 o 1.
- Si la propiedad Texture no está establecer, este método no hace nada.
- Aumentar el desplazamiento actuará en la dirección inversa a la propiedad TextureSpeed, lo que significa que moverá la textura en la dirección opuesta a la dirección en la que la textura se anima cuando TextureSpeed sea mayor que 0.
Parámetros
El desplazamiento deseado del ciclo de textura.