Classe do mecanismo
ParticleEmitter
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Resumo
Propriedades
Texture:ContentId |
Amostras de código
Criando um Emissor de Partículas do Zero
local emitter = Instance.new("ParticleEmitter")
-- Número de partículas = Taxa * Tempo de Vida
emitter.Rate = 5 -- Partículas por segundo
emitter.Lifetime = NumberRange.new(1, 1) -- Quanto tempo as partículas devem viver (min, max)
emitter.Enabled = true
-- Propriedades visuais
emitter.Texture = "rbxassetid://1266170131" -- Uma imagem transparente de um anel branco
-- Para a cor, construa uma ColorSequence usando ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(tempo, cor)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- Em t=0, Branco
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- Em t=.5, Laranja
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- Em t=1, Vermelho
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(tempo, tamanho, envoltória)
NumberSequenceKeypoint.new(0, 1), -- Em t=0, totalmente transparente
NumberSequenceKeypoint.new(0.1, 0), -- Em t=.1, totalmente opaco
NumberSequenceKeypoint.new(0.5, 0.25), -- Em t=.5, principalmente opaco
NumberSequenceKeypoint.new(1, 1), -- Em t=1, totalmente transparente
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- Quando as partículas se sobrepõem, multiplique sua cor para que fique mais brilhante
emitter.LightInfluence = 0 -- Não seja afetado pela iluminação do mundo
-- Propriedades de velocidade
emitter.EmissionDirection = Enum.NormalId.Front -- Emitir para frente
emitter.Speed = NumberRange.new(0, 0) -- Velocidade zero
emitter.Drag = 0 -- Não aplicar arrasto ao movimento das partículas
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Não herdar a velocidade do pai
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Não travar as partículas no pai
emitter.SpreadAngle = Vector2.new(0, 0) -- Sem ângulo de dispersão em nenhum eixo
-- Propriedades de simulação
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- Em t=0, tamanho de 0
NumberSequenceKeypoint.new(1, 10), -- Em t=1, tamanho de 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Renderizar ligeiramente atrás da posição real
emitter.Rotation = NumberRange.new(0, 360) -- Começar em rotação aleatória
emitter.RotSpeed = NumberRange.new(0) -- Não rotacionar durante a simulação
-- Criar uma anexação para que as partículas se emitam do mesmo local exato (anéis concêntricos)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Mover a anexação um pouco para cima
attachment.Parent = script.Parent
emitter.Parent = attachmentReferência API
Propriedades
Texture
ParticleEmitter.Texture:ContentId
VelocitySpread
Métodos
Clear
ParticleEmitter:Clear():()
Devolução
()
Amostras de código
Emissor de Partículas Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
endEmit
Parâmetros
| Valor Padrão: 16 |
Devolução
()
Amostras de código
Emitir Partículas ao Longo da Distância
local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = falseEmissor de Partículas Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end