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.
Obiekt Laser połącza dwa Attachments poprzez rysowanie między nimi tekstury.
Aby wyświetlić, promień musi być potomstwem Class.Workspace z jego Workspace i Attachment0 właściwości ustawionych na Attachment1 również z 2> Class.Workspace2> .
Wygląd wiązania można dostosować przy użyciu zakresu właściwości opisanych poniżej. Zobacz również przewodnik Wiązania dla przykładów wizualnych.
Zniekształcenie promienia
Leki są skonfigurowane, aby używać kostki Bézier kurwy ukształtowanej przez cztery punkty kontrolne. Oznacza to, że nie są one ograniczone do prostej linii i kursy CurveSize0 , CurveSize1 i orientacja Class
- P0 — Początek promienia; pozycja Attachment0 .
- P1 — CurveSize0 jednostek odległości od Attachment0 w pozytywnej 0>X0> kierunku 3> Class.Beam.Attach0|Attach0 3> .
- P2 — CurveSize1 jednostek odległości od Attachment1 w negatywnej 0> X0> kierunku 3> Class.Beam.Attach1|Attach1 3> .
- P3 — Koniec promienia; pozycja Attachment1
Przykłady kodu
-- 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
The Attachment promień pochodzi z.
The Attachment the beam ends at.
Skala światło emitowane z wiązienia, gdy LightInfluence jest mniejsza niż 1.
Określa kolor promienia poprzez jego Segments .
Określa, wraz z Attachment0, pozycję drugiego punktu kontrolnego w kręwe Bézier.
Określa, wraz z Attachment1, pozycję trzeciego punktu kontrolnego w krzywej Bézier kurulu.
Określa, czy promień jest widoczny lub nie.
Określa, czy Segments promienia zawsze będzie twarzą kamerą, niezależnie od jego orientacji.
Określa w jaki stopień kolory promienia są mieszane z kolorami za nim.
Określa stopień, w jakim promień jest wpływany przez oświetlenie środowisko.
Określa liczbę prostopadłych segmentów, z których jest składany promień.
ID treści tekstury do wyświetlenia na wążu.
Określa długość tekstury wiązania, w zależności od TextureMode .
Określa sposób skalowania i powtarzania się Texture .
Określa prędkość, w jakiej Texture obraz porusza się po ścianie.
Określa przejrzystość promienia w jego segmentach.
Szerokość promienia w jego źródle ( Attachment0 ) w studs.
Szerokość promienia na jego końcu ( Attachment1), w studs.
Odległość, w studs, wyświetlenie promienia jest odchyleniem względem CurrentCamera .
Metody
Ustawia obecny odchód od cyklu tekstury wiąza.
Właściwości
Attachment0
Ten przedmiot jest pierwszym punktem kontrolnym na promieniu. Ta przyczepa jest pierwszym punktem kontrolnym na kształcie kubatu Bézier; jej orientacja, wraz z właściwością Attachment, określa pozycję drugiego punktu kontrolnego. Zobacz CurveSize0 dla więcej szczegółów.
Dla Attachment , gdzie kończy się promień, zobacz Attachment1.
Attachment1
Class.Attendance ten wiążący końca się na końcu. Ten wiążący jest czwartym i ostatecznym punktem kontroli na wiąźącym kształcie Bézier; jego orientacja, wraz z właściwością CurveSize1, określa pozycję trzeciego punktu kontroli. Zobacz Beams dla więcej szczegółów.
Dla Attachment , gdzie promień pochodzi z, zobacz Attachment0 .
Brightness
Skala światło emitowane z wiązki, gdy LightInfluence jest mniejsza niż 1. Ta właściwość jest domyślnie ustawiona na 1 i może być ustawiona na dowolną liczbę w zakresie 0 do 10000. Zwiększanie wartości LightInfluence zwiększa e
Color
Określa kolor promienia poprzez jego Segments . Jeśli Texture jest ustawiać, ten kolor zostanie zastosowany do tekstury promienia. Jeśli nie ustawiaćTexture, 1> Class.Beam1> pojawi
Ta właściwość jest ColorSequence, pozwalającą na konfigurację koloru, aby zmienić kolor w zależności od długości promienia. Weź pod uwagę następujący ColorSequence, który, gdy zostanie zastosowany do promienia, wygeneruje wynik przedstawiony na obrazie.
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 kolorowanie wiązki również zależy od liczby Segments , które ma Beam. Każdy
CurveSize0
Określa, wraz z Attachment0, pozycję drugiego punktu kontrolnego w krzywej Bézier. Zobacz Lasery po więcej szczegółów.
Pozycja tego punktu można zdefiniować poprzez następujące 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ézier. Zobacz Lasery po więcej szczegółów.
Pozycja tego punktu można zdefiniować poprzez następujące równanie:
local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)
Enabled
Określa, czy promień jest widoczny lub nie.
Gdy właściwość ustawiona jest na fałszywy, Segments promieni 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 twarzy zawsze twarzy zawsze jest 2> Class.Workspace.CurrentCamera|CurrentCamera2>, niezależnie od jego orient
LightEmission
Określa, w jakim stopniu kolory promienia są mieszane z kolorami za nim. Powinno być ustawione w zakresie 0 do 1. Wartość 0 używa zwykłych tryb mieszania, a wartość 1 używa tryb mieszania dodawkowego.
Ta właściwość nie powinna być mylona z LightInfluence, który określa, jak promień jest wpływany przez środowiskowe światło.
Ta właściwość nie powoduje, że promień świeci środowisko.
LightInfluence
Określa stopień, w jakim promień jest wpływany przez oświetlenie środowisko, zacięte pomiędzy 0 i 1. Gdy 0, promień nie będzie wpływany przez oświetlenie środowisko. Gdy 1, będzie w pełni dotknięty przez oświetlenie jako BasePart będzie.
Zobacz również LightEmission, który określa w jaki stopień kolory promienia są mieszane z kolorami za nim.
LocalTransparencyModifier
Segments
Zamiast być idealną krewną, promień składa się z prostopadłych segmentów. Im więcej segmentów, tym wyższa rozdzielczość krewny. Właściwość Segmenty ustawia liczbę prostopadłych segmentów, z domyślną wartością 10.
Uwaga, że właściwości Color i Transparency wymagają pewnej liczby
Texture
ID treści tekstury do wyświetlenia na wątku. Jeśli ta właściwość nie jest ustawiać, wątek będzie wyświetlany jako linia solidna; to się również zdarza, gdy właściwość ta jest ustawiona na nieprawidłową ID treści lub obraz związany z właściwością nie został jeszcze załadowany.
Wygląd tekstury można dalsze zmodyfikować poprzez inne właściwości promienia, w tym Color i Transparency.
Skalowanie tekstury jest zdeterminowane przez TextureMode, TextureLength, Width0 i 2>Class.Beam.Width1|Width12> właściwości.
TextureMode
Ta właściwość, wraz z TextureLength, określa, jak powtarza się Texture promienia.
Gdy ustawiony na Enum.TextureMode.Wrap lub Enum.TextureMode.Static, powtórzenia tekstury będą równać się długości całego promienia (w studs) dzielonej przez jego TextureLength .
Gdy ustawiony na Enum.TextureMode.Stretch , teksturę powtarza się TextureLength razy w całej długości promienia.
TextureSpeed
Określa prędkość, w jakiej przesuwa się obraz Texture po włóczniku. Gdy ta wartość jest pozytywna, tekstura włócznika będzie się poruszać od Attachment0 do Attachment1. Ta kierunek można odwrócić
Transparency
Określa przejrzystość promienia w jego segmentach. Ta właściwość jest NumberSequence, pozwalającą na konfigurację przejrzystości, aby różnić się w długości promienia.
Rozważaj następujące NumberSequence, które, gdy zostaną zastosowane do promienia, zwrócą wynik przedstawiony.
local numberSequence = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), -- OpakowanieNumberSequenceKeypoint.new(0.5, 1), -- PrzezroczystyNumberSequenceKeypoint.new(1, 0), -- Opakowanie})
Uwaga, że przejrzystość wiązki również zależy od liczby Segments. Każdy segment wiązki może pokazać tylko przejście między dwoma przejrzystościami. Dlatego więc wiązka będzie mus
Width0
Szerokość promienia w jego źródle ( Attachment0 ) w studs. Szerokość promienia zmieni się liniowo do Width1 studs na jego końcu ( Attachment1).
Width1
Szerokość promienia na jego końcu ( Attachment1), w studs. Szerokość promienia będzie się zmieniać liniowo od Width0 promienia po jego początku ( Attachment0 ).
ZOffset
Odległość, w studs, wyświetlenie promienia jest odchyleniem względem CurrentCamera. Gdy 0, promień zostanie wyświetlony w jego standardowej pozycji między Attachment0 i Attachment1. 2> ZOffset2> może
Właściwość ta jest szczególnie przydatna do uniknięcia "walczby" podczas używania wielu Beams pomiędzy tymi samymi Attachments.
Przykłady kodu
-- 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 wiązki reprezentuje postęp jej animacjatekstury. Ta metoda ustawia obecny odległość cyklu tekstury wiązki; zatem można go użyć do zresetowania cyklu poprzez przesunięcie 0 jako parametru offset .
Notatki
- Parametr offset może być wartością pomiędzy 0 a 1, ale można użyć większych wartości.
- Cykl tekstury kończy się na 0 i 1, co oznacza, że tekstura jest w tym samym położeniu, gdy odległość wynosi 0 lub 1.
- Jeśli właściwość Texture nie jest ustawiać, ten metod nie robi nic.
- Zwiększanie odchylenia będzie działać w odwrotnym kierunku właściwości TextureSpeed, co oznacza, że porusza teksturę w odwrotnym kierunku do kierunku animacji tekstury, gdy Class.Beam.TextureSpeed|TextureSpeed jest większy niż 0.
Parametry
Żądane przesunięcie cyklu tekstury.