Smoke
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Fumaça é uma das várias Classesemissoras de partículas.Como outros emissores de partículas de seu tipo, objetos de Fumaça emitem partículas quando parentados a um BasePart (como um Part ) ou a um Attachment dentro de tal BasePart .Comparado à classe ParticleEmitter , Fuma carece de muitas propriedades de personalização diferentes e métodos especiais, como ParticleEmitter.Lifetime ou ParticleEmitter:Emit().É útil criar um efeito especial rápido em um piscar de olhos; para um trabalho mais detalhado, é preferível usar um ParticleEmitter em vez disso.
Quando Smoke.Enabled é desligado, as partículas emitidas por este objeto continuarão a renderizar até que sua vida útil expire.Quando um Objetode Fumaça é definido como (e/ou editado), todas as partículas desaparecerão instantaneamente.Se esse efeito não for desejado, tente ocultar o objeto pai em uma posição distante, então remova a Fuma após alguns segundos usando Debris para dar às últimas partículas uma chance de expirar.Este objeto não tem um método ParticleEmitter:Clear() , mas é possível definir o Instance.Parent para nil e voltar ao mesmo objeto exato para o mesmo efeito.
Partículas de fumaça são emitidas apenas do centro de BasePart para o qual elas são parentadas.Parentar um objeto de Fumaça para um Attachment em vez disso permite a personalização da posição de início das partículas.
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Resumo
Propriedades
Determina a cor das partículas de fumaça.
Determina se as partículas de fumaça emitem.
Determina como as partículas de fumaça opaca se renderizar.
Determina a velocidade das partículas de fumaça.
Determina o tamanho das partículas de fumaça recém-emitidas.
Valor entre 0-1 que controla a velocidade do efeito de partículas.
Propriedades
Color
A propriedade Cor determina a cor de todos os particípios emitidos por um objeto Smoke (partículas existentes e futuras).Ela se comporta de forma semelhante a ParticleEmitter.Color , exceto que é apenas uma cor e não um ColorSequence .Uma cor branca com algum Smoke.Opacity faz um bom efeito de neve, e uma cor preta muito opaca pode complementar um objeto Fire muito bem.
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Enabled
A propriedade Ativada, muito como ParticleEmitter.Enabled, determina se as partículas de fumaça são emitidas.Quaisquer partículas já emitidas continuarão a renderizar até que sua vida útil expire.Essa propriedade é útil para manter efeitos de fumaça pré-feitos desativados até que sejam necessários mais tarde.Como as partículas de fumaça são destruídas quando o Objetoé definido como , esta propriedade é útil em permitir que as partículas existentes tenham a oportunidade de expirar antes de destruir completamente o objeto Fogo.Veja a função abaixo.
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)
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
LocalTransparencyModifier
Opacity
Opacidade determina a opacidade das partículas de fumaça.Deve estar na faixa [0, 1].Essa propriedade funciona inversamente em comparação com uma parte's BasePart.Transparency ou ParticleEmitter's ParticleEmitter.Transparency : um valor de 0 é completamente invisível, 1 é completamente visível.
A textura que o Roblox usa para Smoke partículas é parcialmente transparente, então definir esta propriedade para 1 ainda gera transparência em fumaça renderizada.
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
RiseVelocity
O RiseVelocity se comporta de forma semelhante a ParticleEmitter.Speed e Fire.Heat: ele determina quão rápido as partículas de fumaça se movem durante sua vida útil.Deve estar na faixa [-25, 25].Os valores negativos farão com que as partículas emitem na direção inferior (-Y) do pai BasePart .
Ao usar um efeito Smoke de criar neblina, defina esta propriedade para 0.Para grandes efeitos de fumaça, faça a subida sutil (2 a 8).Para chaminés e pilhas de fumaça, valores mais altos são apropriados.
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
Size
A propriedade Tamanho de Smoke determina o tamanho das partículas de fumaça recém-emitidas.Ao contrário de Smoke.Color, esta propriedade não alterará o tamanho de partículas existentes.Deve estar na faixa [0.1, 100].Ao contrário de ParticleEmitter.Size, esta propriedade é apenas um número (não um NumberSequence).Observe também que o tamanho das partículas não é 1-para-1 com metros; na verdade, o tamanho da partícula de fumaça é mais de duas vezes maior.Na maior tamanho, as partículas de fumaça podem renderizar maiores do que 200 metros de largura!
Amostras de código
Este exemplo de código adiciona um objeto Smoke a cada objeto Fire na Workspace. Ele faz isso usando uma busca recursiva.
local function recurseForFire(object)
-- Verifique se encontramos um objeto de Fogo que não tem Fumaça
if object:IsA("Fire") and not object.Parent:FindFirstChildOfClass("Smoke") then
-- Crie um efeito de fumaça para esse fogo
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 a busca por objetos de Fogo
for _, child in pairs(object:GetChildren()) do
recurseForFire(child)
end
end
recurseForFire(workspace)
TimeScale
Um valor entre 0-1 que controla a velocidade do efeito de partículas.Em 1, ele funciona a velocidade normal, em 0.5 funciona a metade da velocidade e em 0 congela o tempo.