Smoke
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
La humareda es una de varias Clasesemisoras de partículas.Al igual que otros emisores de partículas de su tipo, los objetos de humo emiten partículas cuando están patrocinados por un BasePart (como un Part ) o un Attachment dentro de tal BasePart .En comparación con la clase ParticleEmitter , Smoke carece de muchas propiedades de personalización diferentes y métodos especiales, como ParticleEmitter.Lifetime o ParticleEmitter:Emit().Es útil crear un efecto especial rápido en un apuro; para un trabajo más detallado, es preferible usar un ParticleEmitter en su lugar.
Cuando Smoke.Enabled está desactivado, las partículas emitidas por este objeto continuarán renderizándose hasta que expire su vida útil.Cuando un objeto de humo se establece en (y/o ed), todas las partículas desaparecerán instantáneamente.Si este efecto no es deseado, intenta ocultar el objeto padre en una posición lejana, luego elimina la Nube después de unos segundos usando Debris para darle a las últimas partículas la oportunidad de expirar.Este objeto no tiene un método ParticleEmitter:Clear() , pero es posible establecer el Instance.Parent a nil y volver al mismo objeto exacto para el mismo efecto.
Las partículas de humo solo se emiten desde el centro de BasePart a donde son padres.Padronizar un objeto de humo a un Attachment en lugar de permitir la personalización de la posición de inicio de las partículas.
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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)
Resumen
Propiedades
Determina el color de las partículas de humo.
Determina si emiten partículas de humo.
Determina cómo se Renderizarlas partículas de humo opacas.
Determine la velocidad de las partículas de humo.
Determina el tamaño de las partículas de humo recién emitidas.
Valor entre 0-1 que controla la velocidad del efecto de partículas.
Propiedades
Color
La propiedad de Color determina el color de todas las partículas emitidas por un objeto Smoke (tanto partículas existentes como futuras).Se comporta de manera similar a ParticleEmitter.Color , excepto que es solo un color y no un ColorSequence .Un color blanco con algo de Smoke.Opacity hace un buen efecto de niebla, y un color negro muy opaco puede complementar un objeto Fire muy bien.
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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
La propiedad Habilitada, mucho como ParticleEmitter.Enabled, determina si se emiten partículas de humo.Cualquier partícula ya emitida continuará renderizándose hasta que expire su vida útil.Esta propiedad es útil para mantener los efectos de humo precocinados desactivados hasta que se necesiten más tarde.Dado que las partículas de humo se destruyen cuando el objeto se establece en para que expire antes de destruir el objeto de fuego por completo, esta propiedad es útil para permitir que las partículas existentes tengan la oportunidad de expirar antes de destruir el objeto de fuego por completo.Vea la función a continuación.
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)
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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
Opacity
La opacidad determina la opacidad de las partículas de humo.Debe estar en el rango [0, 1].Esta propiedad funciona inversamente en comparación con un valor de BasePart.Transparency de una parte o ParticleEmitter.Transparency del Emisor de partículas: un valor de 0 es completamente invisible, uno es completamente visible.
La textura que Roblox usa para Smoke partículas es parcialmente transparente, por lo que establecer esta propiedad en 1 aún produce transparencia en el humo renderizado.
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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
RiseVelocity se comporta de manera similar a ParticleEmitter.Speed y Fire.Heat : determina qué tan rápido se mueven las partículas de humo durante su vida útil.Debe estar en el rango [-25, 25].Los valores negativos harán que las partículas emitan en la dirección inferior (-Y) del padre BasePart .
Al usar un efecto Smoke para crear niebla, establece esta propiedad a 0.Para efectos de humo grandes, haz que la subida sea sutil (de 2 a 8).Para chimeneas y estufas, los valores más altos son apropiados.
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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
La propiedad de tamaño de Smoke determina el tamaño de las partículas de humo recién emitidas.A diferencia de Smoke.Color, esta propiedad no cambiará el tamaño de las partículas existentes.Debe estar en el rango [0.1, 100].A diferencia de ParticleEmitter.Size , esta propiedad es solo un número (no un NumberSequence ).También tenga en cuenta que el tamaño de las partículas no es 1-a-1 con studs; de hecho, el tamaño de la partícula de humo es más de dos veces más grande.En el tamaño más grande, ¡las partículas de humo pueden renderizarse más grandes que 200 tachuelas de ancho!
Muestras de código
This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.
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
Un valor entre 0-1 que controla la velocidad del efecto de partículas.En 1 se ejecuta a velocidad normal, en 0.5 se ejecuta a la mitad de velocidad y en 0 se congela el tiempo.