Beam

Mostrar obsoleto

*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.

Beam curvature diagram

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.

Creating a Beam From Scratch

-- 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

Métodos

Propiedades

Attachment0

Leer paralelo

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

Leer paralelo

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

Leer paralelo

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.

Leer paralelo

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)), -- Rojo
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Cyan
ColorSequenceKeypoint.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

Leer paralelo

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

Leer paralelo

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

Leer paralelo

Determina si el rayo es visible o no.

Cuando esta propiedad se establece en falso, el rayo Segments no se mostrará.

FaceCamera

Leer paralelo

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

Leer paralelo

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

Leer paralelo

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

Oculto
No replicado
Leer paralelo

Segments

Leer paralelo

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

ContentId
Leer paralelo

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.

TextureLength

Leer paralelo

Establece la longitud de la textura del rayo, dependiente de TextureMode.

TextureMode

Leer paralelo

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.

TextureMode diagram with Wrap mode

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

TextureMode diagram with Stretch mode

TextureSpeed

Leer paralelo

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

Leer paralelo

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), -- Opacidad
NumberSequenceKeypoint.new(0.5, 1), -- Transparente
NumberSequenceKeypoint.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

Leer paralelo

El ancho del rayo en su origen ( Attachment0 ), en studs. El ancho del rayo cambiará linealmente a Width1 studs en su extremo ( Attachment1 ).

Width1

Leer paralelo

El ancho del rayo al final ( Attachment1 ), en studs. El ancho del rayo cambiará linealmente de Width0 studs en su origen ( Attachment0 ).

ZOffset

Leer paralelo

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.

Layering Beams

-- 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

offset: number

El desplazamiento deseado del ciclo de textura.

Valor predeterminado: 0

Devuelve

()

Eventos