Smoke

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Il fumo è una delle diverse Classiemissive di particelle.Come altri emittenti di particelle del suo tipo, gli oggetti Fumo emettono particelle quando sono parented a un BasePart (come un Part ) o un Attachment all'interno di tale BasePart .Rispetto alla classe ParticleEmitter , Fumo manca di molte proprietà di personalizzazione diverse e metodi speciali, come ParticleEmitter.Lifetime o ParticleEmitter:Emit().È utile creare un effetto speciale rapido in un lampo; per un lavoro più dettagliato è preferibile usare un ParticleEmitter invece.

Quando Smoke.Enabled è Off, le particelle emesse da questo oggetto continueranno a rendere fino a quando non scadono la loro vita.Quando un oggetto Fumo è impostato su (e/o ed), tutte le particelle scompariranno istantaneamente.Se questo effetto non è desiderato, prova a nascondere l'oggetto padre in una posizione lontana, quindi rimuovi il Fumo dopo pochi secondi usando Debris per dare alle ultime particelle una possibilità di scadere.Questo oggetto non ha un metodo ParticleEmitter:Clear() , ma è possibile impostare il Instance.Parent a nil e tornare allo stesso oggetto esatto per lo stesso effetto.

Le particelle di fumo vengono emesse solo dal centro di BasePart a cui sono parenti.La genitorialità di un oggetto Fumo a un Attachment invece consente la personalizzazione della posizione di partenza delle particelle.

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Sommario

Proprietà

  • Lettura Parallela

    Determina il colore delle particelle di fumo.

  • Lettura Parallela

    Determina se le particelle di fumo emettono.

  • Nascosto
    Non Replicato
    Lettura Parallela
  • Non Replicato
    Lettura Parallela

    Determina come le particelle di fumo opaco Renderizzare.

  • Non Replicato
    Lettura Parallela

    Determina la velocità delle particelle di fumo.

  • Non Replicato
    Lettura Parallela

    Determina la dimensione delle particelle di fumo appena emesse.

  • Lettura Parallela

    Valore tra 0-1 che controlla la velocità dell'effetto delle particelle.

Proprietà

Color

Lettura Parallela

La proprietà Colore determina il colore di tutti i particelli emessi da un oggetto Smoke (particelle esistenti e future).Si comporta in modo simile a ParticleEmitter.Color , tranne che è un solo colore e non un ColorSequence .Un colore bianco con alcuni Smoke.Opacity rende per un bel effetto nebbia, e un colore nero molto opaco può completare bene un oggetto Fire .

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Enabled

Lettura Parallela

La ProprietàAbilitata, molto come ParticleEmitter.Enabled , determina se le particelle di fumo vengono emesse.Qualsiasi particella già emessa continuerà a rendere fino alla scadenza della loro vita.Questa proprietà è utile per mantenere gli effetti di fumo pre-fatti fino a quando non sono necessari più tardi.Poiché le particelle di fumo vengono distrutte quando l'oggetto è impostato su , questa proprietà è utile per consentire alle particelle esistenti di avere l'opportunità di scadere prima di distruggere completamente l'oggetto Fire.Vedi la funzione qui sotto.


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)

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

LocalTransparencyModifier

Nascosto
Non Replicato
Lettura Parallela

Opacity

Non Replicato
Lettura Parallela

L'opacità determina l'opacità delle particelle di fumo.Deve essere nella gamma [0, 1].Questa proprietà funziona inversamente in confronto a una parte di BasePart.Transparency o ParticleEmitter's ParticleEmitter.Transparency : un valore di 0 è completamente invisibile, 1 è completamente visibile.

La texture che Roblox utilizza per Smoke particelle è parzialmente trasparente, quindi impostare questa proprietà a 1 rende ancora trasparente il fumo renderizzato.

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

RiseVelocity

Non Replicato
Lettura Parallela

RiseVelocity si comporta in modo simile a ParticleEmitter.Speed e Fire.Heat : determina quanto velocemente le particelle di fumo si muovono durante la loro vita.Deve essere nella gamma [-25, 25].I valori negativi faranno sì che le particelle emettano nella direzione inferiore (-Y) del genitore BasePart .

Quando si utilizza un effetto Smoke a creare nebbia, imposta questa proprietà a 0.Per grandi effetti di fumo, rendi l'aumento sottile (2 a 8).Per camini e stufe, valori più elevati sono appropriati.

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

Size

Non Replicato
Lettura Parallela

La proprietà Dimensione di Smoke determina la dimensione delle particelle di fumo appena emesse.A differenza di Smoke.Color , questa proprietà non cambierà le dimensioni delle particelle esistenti.Deve essere nella gamma [0.1, 100].A differenza di ParticleEmitter.Size , questa proprietà è solo un numero (non un NumberSequence ).Si noti anche che la dimensione dei particolari non è 1-to-1 con gli studs; in effetti, la dimensione della particella di fumo è più di due volte più grande.Alla dimensione più grande, le particelle di fumo possono rendere più grandi di 200 studs larghe!

Campioni di codice

Questo esempio di codice aggiunge un oggetto Smoke a ogni oggetto Fire nella Workspace. Lo fa usando una ricerca ricorsiva.

Aggiungi fumo a tutti i fuochi

local function recurseForFire(object)
-- Verifica se abbiamo trovato un oggetto Fire che non ha fumo
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crea un effetto fumo per questo fuoco
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
-- Continua la ricerca di oggetti Fire
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)

TimeScale

Lettura Parallela

Un valore tra 0-1 che controlla la velocità dell'effetto delle particelle.A 1 esegue a velocità normale, a 0.5 esegue a metà velocità e a 0 congela il tempo.

Metodi

Eventi