Smoke
*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.
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à
Determina il colore delle particelle di fumo.
Determina se le particelle di fumo emettono.
Determina come le particelle di fumo opaco Renderizzare.
Determina la velocità delle particelle di fumo.
Determina la dimensione delle particelle di fumo appena emesse.
Valore tra 0-1 che controlla la velocità dell'effetto delle particelle.
Metodi
Proprietà
Color
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.
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
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.
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
Opacity
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.
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
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.
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
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.
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
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.