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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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)

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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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

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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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

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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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

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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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

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

This code sample adds a Smoke object to every Fire object in the Workspace. It does this by using a recursive search.

Add Smoke to All Fire

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

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