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 con dibujar una textura entre ellos.
Para mostrar, un rayo debe ser un descendiente del Workspace con sus propiedades Attachment0 y Attachment1 establecidas en 2>Class.Attachments|Attachments2> también descendientes del 5>Class.Workspace5> .
La apariencia del rayo se puede personalizar utilizando el rango de propiedades que se indican a continuación. También consulte el guía de Beams para obtener ejemplos visuales.
Curva de haz de rayo
Las luces se configuran para usar una curva de círculo cúbico formada por cuatro puntos de control. Esto significa que no están limitados a las líneas rectas y la curva de la luz se puede modificar cambiando CurveSize0 , CurveSize1 y la orientación de la luz de la Class
- P0 — El comienzo del rayo; posición de Attachment0 .
- P1 — CurveSize0 studs lejos de Attachment0 , en la dirección positiva 0>X0> de 3>Class.Beam.Arrow0 3> .
- P2 — CurveSize1 studs lejos de Attachment1 , en la dirección negativa de 0> X0> en la dirección de 3> Class.Beam.Attach1|Attach1 .
- P3 — El fin del rayo; posición de Attachment1
Muestras de código
-- 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 el rayo se origina desde.
El Attachment el rayo termina en.
Escala la luz emitida por el rayo cuando LightInfluence es menos que 1.
Determina el color del rayo en sus 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 del rayo siempre se enfrentará a la cámara, independientemente de su orientación.
Determina en qué medida los colores del rayo se mezclan con los colores detrás de éste.
Determina la medida en que el rayo está influenciado por la iluminación del entorno, ambiente.
Establece la cantidad de segmentos rectos de los que se compone el rayo.
El ID de contenido de la textura para mostrar en el rayo.
Establece la longitud de la textura del rayo, dependiendo de TextureMode .
Determina la manera en que escala y se repite el Texture .
Determina la velocidad a la que se mueve la imagen Texture a lo largo del rayo.
Determina la transparencia del rayo a través de sus segmentos.
La宽度 del rayo en su origen ( Attachment0), en studs.
La longitud del rayo en su extremo ( Attachment1), en studs.
La distancia, en studs, la pantalla de rayo es el desplazamiento relativo a la CurrentCamera .
Métodos
Establece el desplazamiento actual del ciclo de textura de la viga.
Propiedades
Attachment0
El Attachment el rayo se origina de. Este accesorio es el primer punto de control en la curva cúbica de Bézier del rayo; su orientación, junto con la propiedad CurveSize0 de, determina la posición del segundo punto de control. Ver Rayos para más detalles.
Para el Attachment donde termina el rayo, see Attachment1 .
Attachment1
El Attachment el rayo termina en. Este accesorio es el cuarto y último punto de control en la curva cúbica de Bézier del rayo; su orientación, junto con la propiedad CurveSize1 , determina la posición del tercer punto de control. Ver Beams para más detalles.
Para el Attachment donde el rayo se origina, 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 a cualquier número dentro del rango de 0 a 10000. Aumentar el valor de LightInfluence disminuye el efecto de esta propiedad.
Color
Determina el color del rayo en todo su Segments . Si se establece Texture , este color se aplicará a la textura del rayo. Si no se establecerTexture, el 1> Class.Beam1> aparecerá como una línea s
Esta propiedad es un ColorSequence , que permite que el color se configure para cambiar en función de la longitud del rayo. Considere el siguiente ColorSequence que, al aplicarlo a un rayo, produciría el resultado mostrado.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- RojoColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- CianColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Morado})
Tenga en cuenta que el color del rayo también depende del número de Segments que tiene el Beam. Cada segmento del ray
CurveSize0
Determina, junto con Attachment0, la posición del segundo punto de control en la curva de Bézier del rayo. Véase Beams 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. Véase Beams 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 esté configurada como falsa, el rayo Segments no se mostrará.
FaceCamera
Un Beam es una proyección de 2D que existe en el espacio 3D, lo que significa que puede no ser visible desde todos los ángulos. La propiedad FaceCamera , cuando se establece a true, asegura que la luz siempre se dirige hacia el 1> Class.Workspace.CurrentCamera|CurrentCamera1>, independientemente de su orientación.
LightEmission
Determina en qué medida las colores del rayo se mezclan con las colores detrás de éste. 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 los modos de mezcla aditiva.
Esta propiedad no debe confundirse con LightInfluence que determina cómo el rayo está afectado por la luz ambiental.
Esta propiedad no hace que el rayo ilumine el entorno, ambiente.
LightInfluence
Determina la medida en que el rayo está afectado por la iluminación del entorno, ambiente, colocada 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 un BasePart .
También se ve LightEmission que especifica en qué medida se mezclan los colores del rayo con los colores detrás de éste.
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 la cantidad de segmentos rectos del que está compuesto el rayo, con un valor predeterminado de 10.
Nota que las propiedades Color y Transparency requieren una determinada cantidad de segmentos para mostr
Texture
El ID de contenido de la textura para mostrar en el rayo. Si esta propiedad no se ha establecer, el rayo se mostrará como una línea sólida; esto también se produce cuando la textura se ha establecido a un ID de contenido no vá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 los rayos, incluyendo Color y Transparency .
La escala de la textura se determina por el TextureMode, TextureLength, Width0 y 2>Class.Beam.Width1|Width12> propiedades.
TextureMode
Esta propiedad, junto con TextureLength, determina cómo se repite el Texture de un rayo.
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 se mueve la imagen Texture a lo largo del rayo. Cuando esta propiedad es un valor positivo, la textura del rayo se moverá desde Attachment0 a Attachment1 . Esta dirección se puede invertir al establecer esta propiedad en un valor negativo.
Transparency
Determina la transparencia del rayo en sus segmentos. Esta propiedad es un NumberSequence, lo que permite configurar la transparencia para cambiar en función de la longitud del rayo.
Considera el siguiente NumberSequence que, al aplicarlo a un rayo, produciría el resultado pintado.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpacoNumberSequenceKeypoint.new(0.5, 1), -- TransparenteNumberSequenceKeypoint.new(1, 0), -- Opaco})
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 segundos en order to display
Width0
La longitud del rayo en su origen ( Attachment0), en studs. La longitud del rayo cambiará linealmente a Width1 studs en su extremo ( Attachment1).
Width1
La longitud del rayo en su extremo ( Attachment1), en studs. La longitud del rayo cambiará linealmente desde Width0 studs en su origen ( Attachment0).
ZOffset
La distancia, en studs, la pantalla de rayo es el desplazamiento relativo a la CurrentCamera . Cuando 0, el rayo se mostrará en su posición estándar entre Attachment0 y Attachment1 . 1> ZOffset1> puede ser positivo o negativo.
Esta propiedad es particularmente útil para evitar "Z-fighting" al usar múltiples Beams entre el mismo Attachments .
Muestras de código
-- 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 de un 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 al pasar 0 como el parámetro offset .
Notas
- El parámetro dado offset se espera que sea un valor entre 0 y 1, pero se pueden usar valores más grandes.
- La capa de ciclo de textura se enrolla 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 se establecer, este método no hace nada.
- Aumentar el desplazamiento actuará en la dirección opuesta a la propiedad TextureSpeed, lo que significa que moverá la textura en la dirección opuesta a la dirección en la que se animan las texturas cuando TextureSpeed es mayor que 0.
Parámetros
La desviación deseado del ciclo de textura.