Smoke

Mostrar obsoleto

*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.

Adicionar Fumaça a Todo Fogo

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

  • Ler Parallel

    Determina a cor das partículas de fumaça.

  • Ler Parallel

    Determina se as partículas de fumaça emitem.

  • Oculto
    Não replicado
    Ler Parallel
  • Não replicado
    Ler Parallel

    Determina como as partículas de fumaça opaca se renderizar.

  • Não replicado
    Ler Parallel

    Determina a velocidade das partículas de fumaça.

  • Não replicado
    Ler Parallel

    Determina o tamanho das partículas de fumaça recém-emitidas.

  • Ler Parallel

    Valor entre 0-1 que controla a velocidade do efeito de partículas.

Propriedades

Color

Ler Parallel

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.

Adicionar Fumaça a Todo Fogo

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

Ler Parallel

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.

Adicionar Fumaça a Todo Fogo

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

Oculto
Não replicado
Ler Parallel

Opacity

Não replicado
Ler Parallel

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.

Adicionar Fumaça a Todo Fogo

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

Não replicado
Ler Parallel

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.

Adicionar Fumaça a Todo Fogo

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

Não replicado
Ler Parallel

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.

Adicionar Fumaça a Todo Fogo

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

Ler Parallel

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.

Métodos

Eventos