Beam
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein Strahlen-Objekt verbindet zwei Attachments durch das Ziehen einer Textur zwischen ihnen.
Um angezeigt zu werden, muss ein Strahl ein Nachkommen des Workspace mit seinen Attachment0 und Attachment1 Eigenschaften auf 1> Class.Attachments|Attachments1> auch abstimmen.
Die Erscheinung des Strahls kann mit der Palette von Eigenschaften unten anpasset werden. Siehe auch die Strahlen-Anleitung für visuelle Beispiele.
Strahlenkrümmung
Strahlen sind so konfiguriert, dass sie eine kubische Bézier-Kurve verwenden, die aus vier Kontrollpunkten besteht. Dies bedeutet, dass sie nicht an geraden Linien gebunden sind und die Kurve der Bézier des Beams modifiziert werden kann, indem CurveSize0 , CurveSize1 und die
- P0 — Der Anfang des Beams; Position von Attachment0 .
- P1 — CurveSize0 Studs von Attachment0 entfernt in der positiven 0>X0> Richtung von 3> Class.Beam.Attach0|Attach0 3> .
- P2 — CurveSize1 Studs von Attachment1 entfernt in der negativen 0>X0> Richtung von 3> Class.Beam.Attach1|Attach1 3> .
- P3 — Das Ende des Beams; Position von Attachment1
Code-Beispiele
-- 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
Zusammenfassung
Eigenschaften
Die Attachment der Beam aus.
Die Attachment des Strahls endet an.
Skaliert das von der Leiste emittierte Licht, wenn LightInfluence weniger als 1 ist.
Bestimmt die Farbe des Strahls über seine Segments.
Bestimmt, zusammen mit Attachment0, die Position des zweiten Kontrollpunkts in der Bézier-Kurve des Beams.
Bestimmt, zusammen mit Attachment1, die Position des dritten Kontrollpunkts in der Bézier-Kurve des Beams.
Bestimmt, ob der Strahl sichtbar ist oder nicht.
Bestimmt, ob das Segments des Beams immer auf die Kamera zugeschnitten ist, unabhängig von seiner Ausrichtung.
Bestimmt in welchem Maße die Farben des Strahls mit den Farben hinter ihm gemischt sind.
Bestimmt, inwiefern der Strahl von der Beleuchtung des Umgebungbeeinflusst wird.
Legt fest, aus wie vielen geraden Segmenten sich die Beam zusammensetzt.
Die Textur-ID des zu zeigenden Inhalts auf dem Strahl.
Setzt die Länge der Textur des Beams, abhängig von TextureMode .
Bestimmt die Art und Weise, in der die Texture skaliert und wiederholt wird.
Bestimmt die Geschwindigkeit, mit der das Bild Texture über den Strahl bewegt sich.
Bestimmt die Transparenz des Strahls über seine Segmente.
Die Breite des Beams bei seiner Herkunft ( Attachment0 ) in Studs.
Die Breite des Beams an seinem Ende ( Attachment1 ) in Studs.
Die Entfernung, in Studs, ist der Fadenkreuzanzeige-Versatz in Relation zu CurrentCamera .
Methoden
Setzt den aktuellen Offset der Beam-Texturzyklus.
Eigenschaften
Attachment0
Dieses Zubehör erzeugt den Strahl aus. Dieser Zubehör ist der erste Kontrollpunkt auf der Bézier-Kurve des Beams; seine Ausrichtung neben der EigenschaftenCurveSize0 bestimmt die Position des zweiten Kontrollpunkts. Siehe Beams für weitere Details.
Für das Attachment , wo der Strahl endet, siehe Attachment1.
Attachment1
Das Attachment der Fachwerk endet hier. Dieser Anhang ist der vierte und letzte Kontrollpunkt auf der Bézier-Kurve des Fachwerks; seine Ausrichtung neben der EigenschaftenCurveSize1 bestimmt die Position des dritten Kontrollpunkts. Siehe Fachwerke für weitere Details.
Für das Attachment , wo der Strahl herkommt, siehe Attachment0 .
Brightness
Skaliert das von dem Strahl emittierte Licht, wenn LightInfluence weniger als 1 ist. Diese Eigenschaftenist standardmäßig auf 1 gesetzt und kann auf eine beliebige Zahl innerhalb der Reichweite von 0 zu 10000 erhöht werden. Die Erhöhung des Wertes von LightInfluence verringert den Effekt des Wertes
Color
Bestimmt die Farbe des Beams über seine Segments. Wenn Texture festlegenist, wird diese Farbe auf die Textur des Beams angewendet. Wenn keine Texture festlegenist, wird die 1> Class.Beam1> als solide Linie mit der
Diese Eigenschaft ist eine ColorSequence, wodurch die Farbe konfiguriert werden kann, um sich über die Länge des Beams zu verteilen. Berücksichtige die folgende ColorSequence, die, wenn sie auf einen Beam angewendet wird, das ergebnis präsentiert, das in der bildung Ergebniswird.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- RoteColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- ZyanColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Lila})
Beachten Sie, dass die Färbung des Beams auch von der Anzahl der Segments , die der Beam hat, abhängt.
CurveSize0
Bestimmt, zusammen mit Attachment0 , die Position des zweiten Kontrollpunkts in der Bézier-Kurve des Beams. Siehe Strahlen für mehr Details.
Die Position dieses Punkts kann mit der folgenden Gleichung bestimmt werden:
local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)
CurveSize1
Bestimmt, zusammen mit Attachment1 , die Position des dritten Kontrollpunkts in der Bézier-Kurve des Beams. Siehe Strahlen für mehr Details.
Die Position dieses Punkts kann mit der folgenden Gleichung bestimmt werden:
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Bestimmt, ob der Strahl sichtbar ist oder nicht.
Wenn diese Eigenschaft auf falsch gesetzt ist, werden die Strahlen Segments nicht angezeigt.
FaceCamera
Ein Beam ist eine 2D-Projektion, die im Platzexistiert, was bedeutet, dass sie von jedem Blickwinkel nicht sichtbar sein kann. Die FaceCamera Eigenschaften, wenn sie auf true eingestellt ist, garantiert, dass der Strahl immer auf die 1> Class.Arbeitsbereich.CurrentCamera|CurrentCamera1> zielt, unabhängig von
LightEmission
Bestimmt in welchem Maße die Farben des Beams mit den Farben hinter ihm gemischt sind. Es sollte in der Reichweite von 0 zu 1 festgelegt sein. Ein Wert von 0 verwendet normale Mischmodi und ein Wert von 1 verwendet additive Mischmodi.
Dieses Eigenschaft sollte nicht mit LightInfluence verwechselt werden, die bestimmt, wie der Beam durch Umweltlicht beeinflusst wird.
Diese Eigenschaft nicht , dass der Strahl die Umgebung beleuchtet.
LightInfluence
Bestimmt, inwiefern der Strahl von der Beleuchtung des Umgebungbeeinflusst wird, zwischen 0 und 1 geklemmt. Wenn 0, wird der Strahl nicht von der Beleuchtung des Umgebungbeeinflusst. Wenn 1, wird der Strahl vollständig von der Beleuchtung als BasePart beeinflusst.
Siehe auch LightEmission, die bestimmt, in welchem Ausmaß die Farben des Beams mit den Farben hinter ihm gemischt sind.
LocalTransparencyModifier
Segments
Statt eine perfekte Kurve zu sein, besteht ein Strahl aus geraden Segmenten. Je mehr Segmente, desto höher die Auflösung der Kurve. Die Segmente -Eigenschaft setzt, wie viele gerade Segmente der Strahl besteht, mit einem Standardwert von 10.
Beachten Sie, dass die Color und Transparency-Eigenschaften eine bestimmte Anzahl von Segment
Texture
Die Text-ID der Textur, die auf dem Beam angezeigt werden soll. Wenn diese Eigenschaft nicht festlegenist, wird die Beam als solide Linie angezeigt; dies geschieht auch, wenn die Textur auf eine ungültige Inhalts-ID festgelegt ist oder das Bild, das mit der Textur verbunden ist, noch nicht geladen wurde.
Der Aussehen der Textur kann durch andere Beam-Eigenschaften, einschließlich Color und Transparency weiter modifiziert werden.
Die Skalierung der Textur wird durch die TextureMode, TextureLength, Width0 und 2>Class.Beam.Width1|Width12> Eigenschaften bestimmt.
TextureMode
Dieses Eigenschaftenneben TextureLength bestimmt, wie sich das Texture eines Beams wiederholt.
Wenn auf Enum.TextureMode.Wrap festgelegt, dass die Textur wiederholungen das gesamte länge desstrahls (in studs) multipliziert durch seine Enum.TextureMode.Static oder TextureLength .
Wenn auf Enum.TextureMode.Stretch eingestellt, wiederholt sich die Textur TextureLength Mal über die gesamte Länge des Balkens.
TextureSpeed
Bestimmt die Geschwindigkeit, mit der das Bild Texture über den Balken bewegt wird. Wenn diese Eigenschaft ein positives Wert ist, bewegt sich die Textur des Balkens von Attachment0 zu Attachment1. Diese Richtung kann umgekehrt werden, indem Sie diese Eigenschaft auf einen negativen Wert setzen.
Transparency
Bestimmt die Transparenz des Strahls in seinen Segmenten. Diese Eigenschaft ist ein NumberSequence, so dass die Transparenz konfiguriert werden kann, um die Länge des Strahls zu ändern.
Betrachte die folgende NumberSequence , die, wenn sie auf einen Strahl angewendet wird, das dargestellte Ergebnis erzeugt.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpakeNumberSequenceKeypoint.new(0.5, 1), -- TransparentNumberSequenceKeypoint.new(1, 0), -- Opake})
Beachten Sie, dass die Transparenz des Beams auch von der Anzahl der Segmente abhängt, in denen sich die beiden Transparenzen überlappen. Jeder Segment des Beams kann nur eine Transition zwischen zwei Transparenzen anzeigen. Daher muss ein Beam mindestens Segments Segmente in der Datatype.Number
Width0
Die Breite des Beams an seinem Ursprung ( Attachment0 ) in Studs. Die Breite des Beams ändert sich lineär zu Width1 Studs an seinem Ende ( Attachment1 ).
Width1
Die Breite des Beams am Ende ( Attachment1 ) in Studs. Die Breite des Beams ändert sich lineär von Width0 Studs an seinem Ursprung ( Attachment0 ).
ZOffset
Die Entfernung, in Studs, ist das Beam-Anzeigeparameter relativ zu CurrentCamera . Wenn 0, wird das Beam in seiner Standardposition zwischen Attachment0 und Attachment1 angezeigt. 2> ZOffset2> kann entweder positiv oder negativ sein.
Dieses Eigenschaft ist besonders nützlich, um "Z-Kampf" zu vermeiden, wenn Sie mehrere Beams zwischen demselben Attachments verwenden.
Code-Beispiele
-- 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
Methoden
SetTextureOffset
Der Versatz einer Texturzyklus-Textur repräsentiert den Fortschritt seiner Animationen. Dieser Method setzt den aktuellen Versatz der Texturzyklus-Textur; daher kann er verwendet werden, um den Zyklus durch das Überschreiten von 0 als offset-Parameter zurückzusetzen.
Notizen
- Der angegebene offset -Wert erwartet, dass er ein Wert zwischen 0 und 1 ist, aber größere Werte können verwendet werden.
- Der Texturzyklus wraps bei 0 und 1, was bedeutet, dass die Textur in der selben Position ist, wenn der Offset bei 0 oder 1 ist.
- Wenn die Texture Eigenschaft nicht festlegenist, tut dieses Methode nichts.
- Das Erhöhen des Offsets wird in der umgekehrten Richtung auf die TextureSpeed Eigenschaftenhandeln, was bedeutet, dass es die Textur in die andere Richtung bewegt, in die die Textur animiert, wenn Class.Beam.TextureSpeed|TextureSpeed größer als 0 ist.
Parameter
Der gewünschte Offset des Textilzyklus.