Smoke

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.

Dym jest jedną z kilku klas emitujących cząstki.Podobnie jak inne emiterki cząstek swojego rodzaju, obiekty dymu emitują cząstki, gdy są powiązane z BasePart (takie jak Part ) lub Attachment wewnątrz takiego BasePart .W porównaniu do klasy ParticleEmitter dymu brakuje wielu różnych właściwości dostosowywania i specjalnych metod, takich jak ParticleEmitter.Lifetime lub ParticleEmitter:Emit().Pomocne jest stworzenie szybkiego efektu specjalnego w mgnieniu oka; dla bardziej szczegółowej pracy lepiej jest użyć ParticleEmitter zamiast tego.

Gdy Smoke.Enabled jest wyłączone, cząstki emitowane przez ten obiekt będą nadal renderować się, dopóki nie wygasną ich życie.Gdy obiekt Dym zostanie ustawiony na (i/lub ed), wszystkie cząstki natychmiast znikną.Jeśli ten efekt nie jest pożądany, spróbuj ukryć obiekt rodzic w odległej pozycji, a następnie usuń dym po kilku sekundach za pomocą Debris, aby dać ostatnim cząstkom szansę na wygaśnięcie.Ten obiekt nie ma metody ParticleEmitter:Clear(), ale można ustawić Instance.Parent na nil i powrócić do dokładnie takiego samego obiektu dla tego samego efektu.

Cząstki dymu są emitowane tylko z centrum BasePart do którego są przypisane.Rozmnażanie obiektu dymu do Attachment zamiast pozwala na dostosowanie pozycji startu cząstek.

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Podsumowanie

Właściwości

  • Odczyt równoległy

    Określa kolor cząstek dymu.

  • Odczyt równoległy

    Określa, czy emituje się cząstki dymu.

  • Ukryte
    Bez replikacji
    Odczyt równoległy
  • Bez replikacji
    Odczyt równoległy

    Określa, w jaki sposób renderują się cząstki dymu nieprzezroczyste.

  • Bez replikacji
    Odczyt równoległy

    Określa prędkość cząstek dymu.

  • Bez replikacji
    Odczyt równoległy

    Określa rozmiar nowo emitowanych cząstek dymu.

  • Odczyt równoległy

    Wartość pomiędzy 0-1, która kontroluje prędkość efektu cząstek.

Właściwości

Color

Odczyt równoległy

Właściwość Kolor określa kolor wszystkich cząstek emitowanych przez obiekt Smoke (zarówno istniejące, jak i przyszłe cząstki).Zachowuje się podobnie do ParticleEmitter.Color, z wyjątkiem, że jest tylko jeden kolor, a nie ColorSequence.Kolor biały z nieco Smoke.Opacity sprawia, że efekt mgły jest ładny, a bardzo mętny czarny kolor może dobrze uzupełnić obiekt Fire.

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Enabled

Odczyt równoległy

Właściwość Włączone, podobnie jak ParticleEmitter.Enabled, określa, czy emituje się cząstki dymu.Wszystkie już emitowane cząstki będą nadal renderować się, dopóki ich czas życia nie wygaśnie.Właściwość ta jest przydatna do utrzymywania gotowych efektów dymu, dopóki nie będą potrzebne później.Ponieważ cząstki dymu są niszczone, gdy obiekt jest ustawiony na , właściwość ta jest przydatna w umożliwianiu istniejącym cząstkom możliwości wygaszenia przed całkowitym usunięciem obiektu Ogień.Zobacz funkcję poniżej.


local Debris = game:GetService("Debris")
local part = script.Parent
function stopSmoke(smoke)
smoke.Enabled = false -- No more new particles
Debris:AddItem(smoke, 10) -- Remove the object after a delay (after existing particles have expired)
end
stopSmoke(part.Smoke)

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

LocalTransparencyModifier

Ukryte
Bez replikacji
Odczyt równoległy

Opacity

Bez replikacji
Odczyt równoległy

Nieprzezroczystość określa nieprzezroczystość cząstek dymu.Musi być w przedziale [0, 1].Właściwość ta działa odwrotnie w porównaniu do części BasePart.Transparency lub Emitera cząstek ParticleEmitter.Transparency : wartość 0 jest całkowicie niewidoczna, 1 jest całkowicie widoczna.

Tekstura, której Roblox używa do cząstek Smoke jest częściowo przezroczysta, więc ustawienie tej właściwości na 1 nadal zapewnia przejrzystość w renderowanym dymie

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

RiseVelocity

Bez replikacji
Odczyt równoległy

RiseVelocity zachowuje się podobnie do ParticleEmitter.Speed i Fire.Heat : określa, jak szybko poruszają się cząstki dymu w czasie ich życia.Musi być w przedziale [-25, 25].Wartości ujemne spowodują emisję cząstek w kierunku dolnym (-Y) rodzica BasePart.

Gdy używasz efektu Smoke do tworzenia mgły, ustaw tę właściwość na 0.Dla dużych efektów dymu, uczyń wzrost subtelnym (od 2 do 8).Dla kominów i kominów dymowych odpowiednie są wyższe wartości.

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Size

Bez replikacji
Odczyt równoległy

Właściwość rozmiaru Smoke określa rozmiar nowo emitowanych cząstek dymu.W przeciwieństwie do Smoke.Color właściwość ta nie zmieni rozmiaru istniejących cząstek.Musi znajdować się w przedziale [0.1, 100].W przeciwieństwie do ParticleEmitter.Size ta właściwość jest tylko liczbą (nie NumberSequence ).Zauważ też, że rozmiar cząstek nie jest 1 na 1 z szpilkami; w rzeczywistości rozmiar cząstki dymu jest ponad dwukrotnie większy.W największym rozmiarze cząstki dymu mogą renderować się szersze niż 200 szpilkami!

Przykłady kodu

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

local function recurseForFire(object)
-- Check if we found a Fire object that has no Smoke
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Create a smoke effect for this fire
local smoke = Instance.new("Smoke")
smoke.Color = Color3.new(0, 0, 0)
smoke.Opacity = 0.15
smoke.RiseVelocity = 4
smoke.Size = object.Size / 4
smoke.Parent = object.Parent
end
-- Continue search for Fire objects
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

TimeScale

Odczyt równoległy

Wartość pomiędzy 0-1 kontroluje prędkość efektu cząstek.Na 1 uruchamia się z normalną prędkością, na 0.5 uruchamia się z połową prędkości, a na 0 zamraża czas.

Metody

Zdarzenia