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 Attachment0 e Attachment1 proprietà impostate su 1> Class.Arrow|Arrow11> anche discendente dal 4> Class.Area di lavoro4> .
L'aspetto del raggio può essere personalizzato utilizzando la gamma di proprietà elencate di seguito. Vedi anche la guida Beams per esempi visivi.
Curvatura del raggio
I raggi sono configurati per utilizzare una curva Bézier cubica formata da quattro punti di controllo. Ciò significa che non sono limitati a linee dritte e la curva della beam può essere modificata modificando CurveSize0 , CurveSize1 e l'orientamento della beam's Class.Att
- P0 — Inizio del raggio; posizione di Attachment0 .
- P1 — CurveSize0 studs away from Attachment0 , in the positive 0> X0> direction of 3> Class.Beam.Attach0|Attach0 3> .
- P2 — CurveSize1 studs away from Attachment1 , in the negative 0> X0> direction of 3> Class.Beam.Attach1|Attach1 3> .
- P3 — La fine del raggio; posizione di Attachment1
Campioni di codice
-- 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 proviene da.
Il Attachment il raggio termina a.
Scala la luce emessa dal raggio quando LightInfluence è inferiore a 1.
Determina il colore del raggio in tutto il suo Segments .
Determina, insieme a Attachment0 , la posizione del secondo punto di controllo nella curva Bézier del beam.
Determina, insieme a Attachment1 , la posizione del terzo punto di controllo nella curva Bézier del beam.
Determina se il raggio è visibile o no.
Determina se il Segments del raggio sarà sempre rivolto alla Telecamera, indipendentemente dalla sua orientazione.
Determina in che misura i colori del raggio sono mescolati con i colori dietro di esso.
Determina il grado in cui il raggio è influenzato dalla luce Ambiente.
Imposta il numero di segmenti dritto di cui è composto il raggio.
L'ID del contenuto della texture da mostrare sul raggio.
Imposta la lunghezza della Strutturadel raggio, a seconda di TextureMode .
Determina il modo in cui lo Texture scala e si ripetisce.
Determina la velocità con cui la Texture immagine si muove lungo il raggio.
Determina la trasparenza del raggio in tutte le sue parti.
La larghezza del raggio all'origine ( Attachment0 ) in studs.
La larghezza del raggio alla sua fine ( Attachment1 ) in studs.
La distanza, in studs, la visualizzazione del raggio è l'Offset relativo alla CurrentCamera .
Metodi
Imposta l'attuale offset della ciclo di texture della beama.
Proprietà
Attachment0
Il raggio deriva da. Questo accessorio è il primo punto di controllo sulla curva cubica Bézier del raggio; la sua orientazione, insieme alla ProprietàAttachment, determina la posizione del secondo punto di controllo. Vedi CurveSize0 per ulteriori dettagli.
For the Attachment where the beam ends, see Attachment1 .
Attachment1
Il Attachment del raggio termina qui. Questo accessorio è 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 Beams per ulteriori dettagli.
For the Attachment where the beam originates from, see Attachment0 .
Brightness
Scala la luce emessa dal raggio quando LightInfluence è inferiore a 1. Questa proprietà è 1 per impostazione predefinita e può essere impostata su qualsiasi numero all'interno della gamma di 0 a 10000. L'aumento del valore di LightInfluence riduce l'effetto di questo Proprietà
Color
Determina il colore del raggio attraverso il suo Segments . Se Texture è Impostare, questo colore sarà applicato alla Strutturadel raggio. Se nessun Texture è Impostare, il 1> Class.Beam1> apparirà come una
Questa proprietà è una ColorSequence , che consente al colore di essere configurato per variare lungo la lunghezza del raggio. Considere il seguente ColorSequence che, quando applicato a un raggio, avrebbe restituito il Risultatomostrato.
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})
Nota che anche la colorazione del raggio dipende dal numero di Segments che ha. Ogni segmento del raggio può mostrare solo una transizione tra due colori
CurveSize0
Determina, insieme a Attachment0, la posizione del secondo punto di controllo nella curva Bézier del beam. Vedi Beams per ulteriori 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 beam. Vedi Beams per ulteriori 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 raggio è visibile o no.
Quando questa proprietà è impostata su false, il raggio Segments non sarà 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 sia sempre rivolto alla 1> Class.Area di lavoro.CurrentCamera|CurrentCamera1> , indipendentemente dalla sua orientazione.
LightEmission
Determina in che misura i colori del raggio sono mescolati con i colori dietro di esso. Dovrebbe essere impostato nella gamma di 0 a 1. Un valore di 0 usa i metodi di mescolamento normali e un valore di 1 usa i metodi di mescolamento additivo.
Questa proprietà non dovrebbe essere confusa con LightInfluence che determina il modo in cui il raggio è influenzato dalla luce ambientale.
Questa proprietà non fa non in modo che il raggio illumini l'Ambiente.
LightInfluence
Determina il grado in cui il raggio è influenzato dalla luce Ambiente, fissata tra 0 e 1. Quando 0, il raggio non sarà influenzato dalla luce Ambiente. Quando 1, sarà completamente influenzato dalla luce come BasePart sarebbe.
Vedi anche LightEmission che specifica in che misura i colori del raggio sono mescolati con i colori dietro di esso.
LocalTransparencyModifier
Segments
Invece di essere una perfetta curva, un raggio è costituito da segmenti retti. Più segmenti, maggiore è la risoluzione della curva. La proprietà Segmenti imposta il numero di segmenti retti del raggio, con un valore predefinito di 10.
Nota che le proprietà Color e Transparency richiedono un certo numero di segmenti per visualizz
Texture
L'ID del contenuto della texture da mostrare sul raggio. Se questa proprietà non è Impostare, il raggio verrà visualizzato come una solida linea; questo si verifica anche quando la texture è impostata su un ID di contenuto non valido o l'immagine associata alla texture non è ancora caricata.
L'aspetto della texture può essere ulteriormente modificato da altre proprietà del raggio, tra cui Color e Transparency .
Lo scalaggio della texture è determinato dal TextureMode, TextureLength, Width0, e 2>Class.Beam.Width1|Width12> proprietà.
TextureMode
Questa Proprietà, oltre a TextureLength , determina il modo in cui si ripetisce la ripetizione di un raggio.
Quando impostato su Enum.TextureMode.Wrap o Enum.TextureMode.Static, le ripetizioni di texture saranno uguali alla lunghezza complessiva del raggio (in studs) divisa dalla sua TextureLength .
Quando impostato su Enum.TextureMode.Stretch, la texture si ripetrà TextureLength volte su tutta la lunghezza del raggio.
TextureSpeed
Determina la velocità con cui la Texture immagine si muove lungo il raggio. Quando questa proprietà è un valore positivo, la texture del raggio si muove da Attachment0 a Attachment1 . Questa direzione può essere invertita impostando questa proprietà su un valore negativo.
Transparency
Determina la trasparenza del raggio in base ai suoi segmenti. Questa proprietà è un NumberSequence, che consente di configurare la trasparenza per variare sulla lunghezza del raggio.
Considera il seguente NumberSequence che, quando applicato a un raggio, avrebbe restituito il Risultatomostrato.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpacoNumberSequenceKeypoint.new(0.5, 1), -- TrasparenteNumberSequenceKeypoint.new(1, 0), -- Opaco})
Nota 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 almeno n-1 segmenti per
Width0
La larghezza del raggio all'origine ( Attachment0 ) in studs. La larghezza del raggio cambierà lineolarmente a Width1 studs alla fine ( Attachment1 ) .
Width1
La larghezza del raggio alla sua fine ( Attachment1 )>, in studs. La larghezza del raggio cambierà lineolarmente da Width0 studs all'inizio ( Attachment0 ) .
ZOffset
La distanza, in studs, la visualizzazione del raggio è l'Offset rispetto alla CurrentCamera . Quando 0, il raggio sarà visualizzato nella sua posizione standard tra Attachment0 e Attachment1 . 1> ZOffset1> può essere positivo o negativo.
Questa proprietà è particolarmente utile per evitare "Z-fighting" quando si utilizzano più Beams tra gli stessi Attachments .
Campioni di codice
-- 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 di un ciclo di texture rappresenta il progresso della sua animazionidi texture. Questo metodo imposta l'offset corrente del ciclo di texture; quindi, può essere utilizzato per ripristinare il ciclo passando 0 come il parametro offset .
Note
- Il parametro offset dato è in attesa di essere un valore tra 0 e 1, ma possono essere utilizzati anche valori più grandi.
- Il ciclo di 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 opposta alla proprietà TextureSpeed, il che significa che sposterà la texture nella direzione opposta alla direzione in cui si animano le texture quando TextureSpeed è maggiore di 0.
Parametri
L'Offset desiderato del ciclo di texture.