Beam
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un oggetto Beam connette due Attachments disegnando una texture tra di loro.
Per visualizzare, un raggio deve essere un discendente del Workspace con le sue proprietà Attachment0 e Attachment1 impostate su Attachments anche discendenti dal Workspace .
L'aspetto del raggio può essere personalizzato utilizzando la gamma di proprietà descritte qui sotto. Vedi anche la guida Fasi per esempi visivi.
Curvatura del raggio
I fascii sono configurati per utilizzare una curva cubica di Bézier formata da quattro punti di controllo.Questo significa che non sono limitati a linee rette e la curva del fascio può essere modificata cambiando CurveSize0 , CurveSize1 e l'orientamento del fascio di Attachments .
- P0 — L'inizio del raggio; posizione di Attachment0.
- P1 — studs lontano da , nella direzione positiva di X .
- P3 — La fine del raggio; posizione di Attachment1

Campioni di codice
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
Sommario
Proprietà
Il Attachment il raggio si origina da.
Il Attachment il raggio finisce a.
Scala la luce emessa dal raggio quando LightInfluence è inferiore a 1.
Determina il colore del raggio attraverso la sua Segments .
Determina, insieme a Attachment0, la posizione del secondo punto di controllo nella curva Bézier del raggio.
Determina, insieme a Attachment1, la posizione del terzo punto di controllo nella curva Bézier del raggio.
Determina se il fascio è visibile o meno.
Determina se il Segments del raggio si rivolgerà sempre alla Telecamera, indipendentemente dalla sua orientazione.
Determina fino a che punto i colori del fascio sono mescolati con i colori dietro di esso.
Determina il grado in cui il fascio è influenzato dalla luce dell'Ambiente.
Imposta quante segmenti retti è composto il raggio.
L'ID del contenuto della texture da mostrare sul raggio.
Imposta la lunghezza della Strutturadel fascio, dipendente da TextureMode .
Determina il modo in cui le Texture scale e si ripetono.
Determina la velocità alla quale l'immagine Texture si muove lungo il raggio.
Determina la trasparenza del raggio attraverso i suoi segmenti.
La larghezza del raggio alla sua origine ( Attachment0 ), in studs.
La larghezza del raggio alla sua fine ( Attachment1 ), in studs.
La distanza, in studs, la visualizzazione del fascio è spostata rispetto al CurrentCamera .
Metodi
Imposta l'offset corrente del ciclo della texture del fascio.
Proprietà
Attachment0
Il Attachment il raggio si origina da.Questo allegato è il primo punto di controllo sulla curva cubica Bézier del raggio; la sua orientazione, insieme alla ProprietàCurveSize0 , determina la posizione del secondo punto di controllo.Vedi Fasi per maggiori dettagli.
Per il Attachment dove termina il raggio, vedi Attachment1 .
Attachment1
Il Attachment il raggio finisce a.Questo allegato è il quarto e ultimo punto di controllo sulla curva cubica Bézier del raggio; la sua orientazione, insieme alla ProprietàCurveSize1 , determina la posizione del terzo punto di controllo.Vedi Fasi per maggiori dettagli.
Per il Attachment dove il fascio si origina, vedi Attachment0 .
Brightness
Scala la luce emessa dal raggio quando LightInfluence è inferiore a 1.Questa proprietà è 1 per impostazione predefinita e può essere impostata a qualsiasi numero all'interno della gamma da 0 a 10000.Aumentare il valore di LightInfluence diminuisce l'effetto del valore di questa Proprietà.
Color
Determina il colore del raggio attraverso la sua Segments .Se Texture è Impostare, questo colore verrà applicato alla Strutturadel raggio.Se non è Impostarealcuna Texture, la Beam apparirà come una linea solida colorata in conformità a questa Proprietà.
Questa proprietà è un ColorSequence , che consente al colore di essere configurato per variare lungo la lunghezza del raggio.Considera il seguente ColorSequence che, quando applicato a un raggio, produrrebbe il Risultatorappresentato.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- RossoColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- CianoColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Viola})

Si noti che anche la colorazione del raggio dipende dal numero di Segments che Beam ha.Ogni segmento del raggio può mostrare solo una transizione tra due colori.Pertanto un Beam avrà bisogno di avere almeno n-1 segmenti perché il colore venga visualizzato correttamente, dove n è il numero di ColorSequenceKeypoints in ColorSequence .
CurveSize0
Determina, insieme a Attachment0, la posizione del secondo punto di controllo nella curva Bézier del raggio. Vedi Beams per maggiori dettagli.
La posizione di questo punto può essere determinata dall'equazione seguente:
local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)
CurveSize1
Determina, insieme a Attachment1, la posizione del terzo punto di controllo nella curva Bézier del raggio. Vedi Beams per maggiori dettagli.
La posizione di questo punto può essere determinata dall'equazione seguente:
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Determina se il fascio è visibile o meno.
Quando questa proprietà è impostata su false, il fascio di Segments non verrà visualizzato.
FaceCamera
Un Beam è una proiezione 2D esistente nello Spazio3D, il che significa che potrebbe non essere visibile da ogni angolo.La Proprietà FaceCamera , quando impostata su true, garantisce che il raggio si diriga sempre verso il CurrentCamera, indipendentemente dall'orientamento.
LightEmission
Determina fino a che punto i colori del fascio sono mescolati con i colori dietro di esso.Dovrebbe essere impostato nella gamma da 0 a 1.Un valore di 0 utilizza i normali modi di fusione e un valore di 1 utilizza la fusione additiva.
Questa proprietà non deve essere confusa con LightInfluence che determina come il fascio sia influenzato dalla luce ambientale.
Questa proprietà non fa non accendere il fascio l'Ambiente.
LightInfluence
Determina il grado in cui il fascio è influenzato dalla luce dell'Ambiente, appuntata tra 0 e 1.Quando 0, il fascio non verrà influenzato dalla luce dell'Ambiente.Quando 1, sarà completamente influenzato dalla luce come sarebbe BasePart .
Vedi anche LightEmission che specifica fino a che punto i colori del fascio sono mescolati con i colori dietro di esso.
LocalTransparencyModifier
Segments
Piuttosto che essere una curva perfetta, un raggio è composto da segmenti retti.Più segmenti, maggiore è la risoluzione della curva.La proprietà Segmenti imposta il numero di segmenti retti di cui è composto il raggio, con un valore predefinito di 10.
Nota che le proprietà Color e Transparency richiedono un certo numero di segmenti per essere visualizzate correttamente.Questo perché ogni segmento può mostrare solo una transizione tra due colori o trasparenze.Pertanto un Beam richiede almeno n-1 segmenti per essere visualizzati correttamente, dove n è il numero di punti chiave associati al raggio di Color e Transparency.
Texture
L'ID del contenuto della texture da mostrare sul raggio.Se questa proprietà non è Impostare, il raggio verrà visualizzato come una linea solida; ciò avviene anche quando la texture è impostata su un ID contenuto non valido o l'immagine associata alla texture non è ancora stata caricata.
L'aspetto della texture può essere ulteriormente modificato da altre proprietà del raggio incluse Color e Transparency .
La ridimensionamento della texture è determinato dalle proprietà TextureMode, TextureLength, Width0 e Width1.
TextureMode
Questa Proprietà, insieme a TextureLength , determina come si ripete un raggio di Texture .
Quando è impostato su Enum.TextureMode.Wrap o Enum.TextureMode.Static, le ripetizioni della texture saranno uguali alla lunghezza complessiva del raggio (in studs) divisa per il suo TextureLength.

Quando è impostata su Enum.TextureMode.Stretch , la texture si ripeterà TextureLength volte lungo l'intera lunghezza del raggio.

TextureSpeed
Determina la velocità alla quale l'immagine Texture si muove lungo il raggio.Quando questa proprietà è un valore positivo, la texture del raggio si sposterà da Attachment0 a Attachment1 .Questa direzione può essere invertita impostando questa proprietà a un numero negativo.
Transparency
Determina la trasparenza del raggio attraverso i suoi segmenti.Questa proprietà è un NumberSequence , consentendo la trasparenza di essere configurata per variare lungo la lunghezza del raggio.
Considera il seguente NumberSequence che, quando applicato a un raggio, produrrebbe il Risultatorappresentato.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpacoNumberSequenceKeypoint.new(0.5, 1), -- TrasparenteNumberSequenceKeypoint.new(1, 0), -- Opaco})

Si noti che la trasparenza del raggio dipende anche dal numero di Segments.Ogni segmento del raggio può mostrare solo una transizione tra due trasparenze.Pertanto un raggio avrà bisogno di avere almeno n-1 segmenti per essere visualizzato correttamente, dove n è il numero di NumberSequenceKeypoints in NumberSequence .
Width0
La larghezza del raggio alla sua origine ( Attachment0 ), in studs. La larghezza del raggio cambierà linealmente a Width1 studs alla sua fine ( Attachment1 ).
Width1
L'ampiezza del raggio alla sua fine ( Attachment1 ), in studs. L'ampiezza del raggio cambierà linealmente da Width0 studs alla sua origine ( Attachment0 ).
ZOffset
La distanza, in studs, la visualizzazione del fascio è spostata rispetto al CurrentCamera .Quando 0, il fascio verrà visualizzato nella sua posizione standard tra Attachment0 e Attachment1 . ZOffset può essere positivo o negativo.
Questa proprietà è particolarmente utile per evitare "Z‑fighting" quando si utilizza più Beams tra gli stessi Attachments.
Campioni di codice
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
Metodi
SetTextureOffset
L'offset del ciclo della texture di un raggio rappresenta il progresso della sua animazionidella texture.Questo metodo imposta l'offset attuale del ciclo della texture del fascio; pertanto, può essere utilizzato per ripristinare il ciclo passando 0 come parametro offset.
Notizie
- Si prevede che il parametro offset dato sia un valore tra 0 e 1, ma possono essere utilizzati valori più elevati.
- Il ciclo della texture si avvolge a 0 e 1, il che significa che la texture è nella stessa posizione quando l'offset è a 0 o 1.
- Se la proprietà Texture non è Impostare, questo metodo non fa nulla.
- L'aumento dell'offset agirà nella direzione inversa alla ProprietàTextureSpeed, cioè sposterà la texture nella direzione opposta a quella in cui si muove quando TextureSpeed è maggiore di 0.
Parametri
L'offset desiderato del ciclo della texture.