Beam
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Przedmiot Promień łączy dwa Attachments poprzez narysowanie tekstury między nimi.
Aby wyświetlić, promień musi być potomkiem Workspace z jego właściwościami Attachment0 i Attachment1 ze zestawem właściwości Attachments, który również spada z Workspace.
Wygląd promienia można dostosować za pomocą zakresu właściwości opisanych poniżej. Zobacz również przewodnik Promienie dla przykładów wizualnych.
Promienna krzywizna
Promienie są skonfigurowane do użycia kubicznej krzywej Bézier uformowanej przez cztery punkty kontrolne.Oznacza to, że nie są ograniczeni do prostej linii i zakrzywienie promienia można zmodyfikować, zmieniając CurveSize0, CurveSize1 i orientację promienia Attachments.
- P0 — Początek promienia; pozycja Attachment0.
- P1 — metrów od , w pozytywnym kierunku X .
- P3 — koniec promienia; pozycja Attachment1

Przykłady kodu
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
Podsumowanie
Właściwości
Źródło promienia, z którego pochodzi Attachment.
The Attachment promień kończy się na.
Skaluje światło emitowane z promienia, gdy LightInfluence jest mniejsze niż 1.
Określa kolor promienia na całej jego Segments .
Określa, wraz z Attachment0, pozycję drugiego punktu kontrolnego w krzywej Béziera promienia.
Określa, wraz z Attachment1, pozycję trzeciego punktu kontrolnego w krzywej Béziera promienia.
Określa, czy promień jest widoczny, czy nie.
Określa, czy promień Segments zawsze będzie skierowany w kamerę, niezależnie od jej orientacji.
Określa, w jakim stopniu kolory promienia są miksowane z kolorami za nim.
Określa stopień, w jakim promień jest wpływany przez oświetlenie środowisko.
Ustawia, z ilu prostych segmentów składa się promień.
ID treści tekstury, która ma być wyświetlona na promieniu.
Ustawia długość tekstury promienia, zależnie od TextureMode.
Określa sposób, w jaki skale Texture powtarzają się i powiększają.
Określa prędkość, z jaką obraz Texture porusza się wzdłuż promienia.
Określa przejrzystość promienia w jego segmentach.
Szerokość promienia na jego pochodzie ( Attachment0 ), w szpilkach.
Szerokość promienia na końcu ( Attachment1 ), w szpilkach.
Odległość, w szpilkach, wyświetlanie promienia jest przesunięte względem CurrentCamera .
Metody
Ustawia obecny odległość cyklu tekstury promienia.
Właściwości
Attachment0
Źródło promienia, z którego pochodzi Attachment.To załącznik jest pierwszym punktem kontrolnym na kubicznej krzywej Béziera promienia; jego orientacja, obok właściwości CurveSize0, określa pozycję drugiego punktu kontrolnego.Zobacz Promienie dla więcej szczegółów.
Dla Attachment, gdzie promień się kończy, patrz Attachment1.
Attachment1
The Attachment promień kończy się na.To załącznik jest czwartym i ostatnim punktem kontroli na kubicznej krzywej Béziera promienia; jego orientacja, obok właściwości CurveSize1, określa pozycję trzeciego punktu kontrolnego.Zobacz Promienie dla więcej szczegółów.
Dla Attachment, z którego pochodzi promień, patrz Attachment0.
Brightness
Skaluje światło emitowane z promienia, gdy LightInfluence jest mniejsze niż 1.Właściwość ta jest domyślnie 1 i może być ustawiona na dowolną liczbę w przedziale od 0 do 10000.Zwiększanie wartości LightInfluence zmniejsza efekt wartości tej właściwości.
Color
Określa kolor promienia na całej jego Segments .Jeśli Texture jest ustawiać, ten kolor zostanie zastosowany do tekstury promienia.Jeśli nie zostanie ustawiaćżaden Texture, Beam pojawi się jako solidna linia o kolorze zgodnym z tą właściwością.
Właściwość ta jest ColorSequence, umożliwiająca konfigurację koloru, aby zmieniał się wraz z długością promienia.Rozważ następujące ColorSequence, które, zastosowane do promienia, wygenerowałyby pokazany wynik.
local colorSequence = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- CzerwonyColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- CyjanColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Fioletowy})

Zauważ, że kolorystyka promienia zależy również od liczby Segments posiadanych przez Beam .Każdy segment promienia może pokazać tylko przejście między dwoma kolorami.Dlatego Beam będzie musiało mieć co najmniej n-1 segmentów, aby kolor wyświetlony był poprawnie, gdzie n to liczba ColorSequenceKeypoints w ColorSequence .
CurveSize0
Określa, wraz z Attachment0, pozycję drugiego punktu kontrolnego w krzywej Béziera promienia. Zobacz Promienie dla więcej szczegółów.
Pozycja tego punktu może być określona przez następną równanie:
local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)
CurveSize1
Określa, wraz z Attachment1, pozycję trzeciego punktu kontrolnego w krzywej Béziera promienia. Zobacz Promienie dla więcej szczegółów.
Pozycja tego punktu może być określona przez następną równanie:
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Określa, czy promień jest widoczny, czy nie.
Gdy właściwość ta jest ustawiona na fałsz, promień Segments nie będzie wyświetlany.
FaceCamera
A Beam jest projekcją 2D istniejącą w przestrzeni 3D, co oznacza, że może nie być widoczna z każdego kąta.Właściwość FaceCamera , ustawiona na true, zapewnia, że promień zawsze skierowany jest na CurrentCamera, niezależnie od jego orientacji.
LightEmission
Określa, w jakim stopniu kolory promienia są miksowane z kolorami za nim.Powinien być ustawiony w przedziale od 0 do 1.Wartość 0 używa normalnych trybów mieszania i wartość 1 używa trybu dodawania.
Właściwość ta nie powinna być mylona z LightInfluence, która określa, w jaki sposób promień jest wpływany przez światło środowiskowe.
Właściwość ta nie powoduje, że promień oświetla środowisko .
LightInfluence
Określa stopień, w jakim promień jest wpływany przez oświetlenie środowisko, zamocowane między 0 a 1.Gdy 0, promień nie będzie wpływany przez oświetlenie środowisko.Gdy 1, będzie w pełni dotknięty oświetleniem, tak jak BasePart byłoby.
Zobacz także LightEmission, który określa, w jakim stopniu kolory promienia są miksowane z kolorami za nim.
LocalTransparencyModifier
Segments
Zamiast być idealną krzywą, promień składa się z prostopadłych segmentów.Im więcej segmentów, tym wyższa rozdzielczość krzywej.Właściwość Segmenty określa, z ilu prostych segmentów składa się promień, z domyślną wartością 10.
Zauważ, że właściwości Color i Transparency wymagają pewnej liczby segmentów, aby poprawnie wyświetlać.Dzieje się tak, ponieważ każdy segment może wyświetlać tylko przejście między dwoma kolorami lub przezroczystościami.Dlatego wymaga Beam co najmniej n-1 segmentów, aby poprawnie wyświetlić, gdzie n jest liczbą kluczowych punktów związanych z promieniem Color i Transparency.
Texture
ID treści tekstury, która ma być wyświetlona na promieniu.Jeśli ta właściwość nie jest ustawiać, promień zostanie wyświetlony jako solidna linia; zdarza się to również, gdy tekstura jest ustawiona na nieprawidłową identyfikator treści lub obraz związany z teksturą nie został jeszcze załadowany.
Wygląd tekstury można dalej modyfikować za pomocą innych właściwości promienia, w tym Color i Transparency.
Skalowanie tekstury jest określane przez właściwości TextureMode, TextureLength, Width0 i Width1.
TextureMode
Właściwość ta, wraz z TextureLength, określa, w jaki sposób powtarza się Texture promienie.
Gdy ustawiono na Enum.TextureMode.Wrap lub Enum.TextureMode.Static, powtórzenia tekstur będą równe ogólnej długości promienia (w studach) podzielonej przez jego TextureLength.

Gdy ustawiono na Enum.TextureMode.Stretch, tekstura powtórzy się TextureLength razy na całej długości promienia.

TextureSpeed
Określa prędkość, z jaką obraz Texture porusza się wzdłuż promienia.Gdy ta właściwość jest wartością pozytywną, tekstura promienia przeniesie się z Attachment0 na Attachment1.Kierunek ten można odwrócić, ustawiając tę właściwość na ujemną liczbę.
Transparency
Określa przejrzystość promienia w jego segmentach.Właściwość ta jest NumberSequence, umożliwiając konfigurację przejrzystości, aby zmieniała się w zależności od długości promienia.
Rozważ następujące NumberSequence, które, zastosowane do promienia, dałyby wynik pokazany na zdjęciu.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- PrzepuszczalnyNumberSequenceKeypoint.new(0.5, 1), -- PrzezroczystyNumberSequenceKeypoint.new(1, 0), -- Przepuszczalny})

Zauważ, że przejrzystość promienia zależy również od liczby Segments.Każdy segment promienia może pokazać tylko przejście między dwiema przezroczystościami.Dlatego promień będzie musiał mieć co najmniej n-1 segmentów, aby poprawnie wyświetlać, gdzie n jest liczbą NumberSequenceKeypoints w NumberSequence.
Width0
Szerokość promienia na jego pochodzie ( Attachment0 ), w szpilkach. Szerokość promienia zmieni się liniowo na Width1 szpilki na jego końcu ( Attachment1 ).
Width1
Szerokość promienia na końcu ( Attachment1 ), w szpilkach. Szerokość promienia zmieni się liniowo z Width0 szpilkami w jego pochodzeniu ( Attachment0 ).
ZOffset
Odległość, w szpilkach, wyświetlanie promienia jest przesunięte względem CurrentCamera .Gdy 0, promień zostanie wyświetlony w standardowej pozycji między Attachment0 i Attachment1. ZOffset może być pozytywny lub negatywny.
Właściwość ta jest szczególnie przydatna, aby uniknąć "Z‑walcząc" podczas używania wielu Beams między tymi samymi Attachments.
Przykłady kodu
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
Metody
SetTextureOffset
Odległość cyklu tekstury promienia reprezentuje postęp jego animacjatekstury.Ta metoda ustawia obecny odległość cyklu tekstury promienia; dlatego można ją użyć do zresetowania cyklu, przekazując 0 jako parametr offset.
Notatki
- Oczekuje się, że podany parametr offset będzie wartością pomiędzy 0 a 1, ale można używać większych wartości.
- Cykl tekstur kończy się na 0 i 1, co oznacza, że tekstura jest w tej samej pozycji, gdy odległość wynosi 0 lub 1.
- Jeśli właściwość Texture nie jest ustawiać, ta metoda nic nie robi.
- Zwiększenie odległości będzie działać w odwrotnym kierunku do właściwości TextureSpeed, co oznacza, że przeniesie teksturę w przeciwnym kierunku do kierunku, w którym tekstura się animuje, gdy TextureSpeed jest większa niż 0.
Parametry
Odległość pożądana dla cyklu tekstury.