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.

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.

Beam curvature diagram

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.

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

Ź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

Odczyt równoległy

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

Odczyt równoległy

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.

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

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 skierowany jest na CurrentCamera, niezależnie od jego orientacji.

LightEmission

Odczyt równoległy

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

Odczyt równoległy

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

Ukryte
Bez replikacji
Odczyt równoległy

Segments

Odczyt równoległy

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

ContentId
Odczyt równoległy

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.

TextureLength

Odczyt równoległy

Ustawia długość tekstury promienia, zależnie od TextureMode.

TextureMode

Odczyt równoległy

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.

TextureMode diagram with Wrap mode

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

TextureMode diagram with Stretch mode

TextureSpeed

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

Szerokość promienia na jego pochodzie ( Attachment0 ), w szpilkach. Szerokość promienia zmieni się liniowo na Width1 szpilki na jego końcu ( Attachment1 ).

Width1

Odczyt równoległy

Szerokość promienia na końcu ( Attachment1 ), w szpilkach. Szerokość promienia zmieni się liniowo z Width0 szpilkami w jego pochodzeniu ( Attachment0 ).

ZOffset

Odczyt równoległy

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.

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

()

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

offset: number

Odległość pożądana dla cyklu tekstury.

Wartość domyślna: 0

Zwroty

()

Zdarzenia