Beam

Pokaż przestarzałe

*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
Beam curvature diagram

Przykłady kodu

Creating a Beam From Scratch

-- 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

Właściwości

Attachment0

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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)), -- Czerwony
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Cyjan
ColorSequenceKeypoint.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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Ukryte
Bez replikacji
Odczyt równoległy

Segments

Odczyt równoległy

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

ContentId
Odczyt równoległy

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.

TextureLength

Odczyt równoległy

Określa długość tekstury wiązania, w zależności od TextureMode .

TextureMode

Odczyt równoległy

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 .

TextureMode diagram with Wrap mode

Gdy ustawiony na Enum.TextureMode.Stretch , teksturę powtarza się TextureLength razy w całej długości promienia.

TextureMode diagram with Stretch mode

TextureSpeed

Odczyt równoległy

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

Odczyt równoległy

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), -- Opakowanie
NumberSequenceKeypoint.new(0.5, 1), -- Przezroczysty
NumberSequenceKeypoint.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

Odczyt równoległy

Szerokość promienia w jego źródle ( Attachment0 ) w studs. Szerokość promienia zmieni się liniowo do Width1 studs na jego końcu ( Attachment1).

Width1

Odczyt równoległy

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

Odczyt równoległy

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

Layering Beams

-- 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

void

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

offset: number

Żądane przesunięcie cyklu tekstury.

Wartość domyślna: 0

Zwroty

void

Zdarzenia