ParticleEmitter

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un Emisor de partículas es un objeto especial que emite partículas personalizables de 2D al mundo.Para emitir y renderizar partículas, debe estar asociado a un BasePart o un Attachment dentro de tal parte.Cuando se asigna a un BasePart , las partículas se generan aleatoriamente dentro de la caja de contención de la pieza o forma ; cuando se asigna a un Attachment , las partículas se generan desde la posición de la conexión.

Las partículas se emiten automáticamente cuando el emisor está Enabled con un no cero Rate , o manualmente cuando se llama el método Emit.Con un no cero Speed , las partículas se ponen en movimiento hacia afuera y/o hacia adentro, dependiendo de la propiedad ShapeInOut.

Por defecto, las partículas se enfrentan a la cámara, pero el Orientation se puede modificar para respetar la velocidad de las partículas en su lugar.

Durante el Lifetime de las partículas, pueden cambiar su apariencia según el Color y Size.Su movimiento puede cambiar con el tiempo según las propiedades Drag y Acceleration, y también pueden moverse como su padre cuando estén LockedToPart o tengan una propiedad no nula VelocityInheritance.

Para aprender más sobre la creación y personalización de emisores de partículas, vea Emisores de partículas.

Muestras de código

This rather lengthy code sample shows how every property of a ParticleEmitter can be set, including NumberRange, NumberSequence and ColorSequence properties. Below is how the ParticleEmitter should look after every property is set. Try playing around with the different properties to customize how the effect looks!

Creating a Particle Emitter from Scratch

local emitter = Instance.new("ParticleEmitter")
-- Number of particles = Rate * Lifetime
emitter.Rate = 5 -- Particles per second
emitter.Lifetime = NumberRange.new(1, 1) -- How long the particles should be alive (min, max)
emitter.Enabled = true
-- Visual properties
emitter.Texture = "rbxassetid://1266170131" -- A transparent image of a white ring
-- For Color, build a ColorSequence using ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- At t=0, White
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- At t=.5, Orange
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- At t=1, Red
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- At t=0, fully transparent
NumberSequenceKeypoint.new(0.1, 0), -- At t=.1, fully opaque
NumberSequenceKeypoint.new(0.5, 0.25), -- At t=.5, mostly opaque
NumberSequenceKeypoint.new(1, 1), -- At t=1, fully transparent
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- When particles overlap, multiply their color to be brighter
emitter.LightInfluence = 0 -- Don't be affected by world lighting
-- Speed properties
emitter.EmissionDirection = Enum.NormalId.Front -- Emit forwards
emitter.Speed = NumberRange.new(0, 0) -- Speed of zero
emitter.Drag = 0 -- Apply no drag to particle motion
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Don't inherit parent velocity
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Don't lock the particles to the parent
emitter.SpreadAngle = Vector2.new(0, 0) -- No spread angle on either axis
-- Simulation properties
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- At t=0, size of 0
NumberSequenceKeypoint.new(1, 10), -- At t=1, size of 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Render slightly behind the actual position
emitter.Rotation = NumberRange.new(0, 360) -- Start at random rotation
emitter.RotSpeed = NumberRange.new(0) -- Do not rotate during simulation
-- Create an attachment so particles emit from the exact same spot (concentric rings)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Move the attachment upwards a little
attachment.Parent = script.Parent
emitter.Parent = attachment

Resumen

Propiedades

  • Leer paralelo

    Determina la aceleración del eje global de todas las partículas activas, medida en studs por segundo cuadrado.

  • Leer paralelo

    Escala la luz emitida por el emisor cuando ParticleEmitter.LightInfluence es 0.

  • Leer paralelo

    Determina el color de todas las partículas activas durante sus vidas individuales.

  • Leer paralelo

    Determina la velocidad a la que las partículas perderán la mitad de su velocidad a través del decaimiento exponencial.

  • Determina la cara del objeto desde la que emiten las partículas.

  • Leer paralelo

    Determina si las partículas emiten desde el emisor.

  • Determina qué tan rápido se anima la textura del libro de imágenes en fotogramas por segundo.

  • El mensaje de error para mostrar si el Texture no es compatible para un libro electrónico.

  • Determina el diseño de la textura del libro de devolución. Debe ser Ninguno, Grid2x2, Grid4x4 o Grid8x8.

  • Determina el tipo de la animacionesdel libro de imágenes. Debe ser Loop, OneShot, PingPong o aleatoria.

  • Determina si la animación comienza en un marco aleatorio elegido por partícula en lugar de comenzar siempre en el marco cero.

  • Leer paralelo

    Define un rango aleatorio de edades para partículas recién emitidas.

  • Leer paralelo

    Determina cuánto se mezclan los colores de las partículas con los colores que las respaldan.

  • Leer paralelo

    Determina cuántas partículas son influenciadas por la luz ambiental.

  • Oculto
    No replicado
    Leer paralelo
  • Leer paralelo

    Determina si las partículas se mueven rípidamente con la parte de la que se están emitiendo.

  • Specifica cómo orientar las partículas.

  • Leer paralelo

    Determina el número de partículas emitidas por segundo.

  • Leer paralelo

    Determina el rango de velocidades angulares de las partículas emitidas, medido en grados por segundo.

  • Leer paralelo

    Determina el rango de rotaciones en grados para partículas recién emitidas.

  • Establece la forma del emisor a una caja delimitadora, esfera, cilindro o disco.

  • Establece si las partículas emiten hacia afuera, solo hacia adentro, o en ambas direcciones.

  • Leer paralelo

    Influye en la emisión de partículas desde el cilindro, el disco, la esfera y la forma de caja.

  • Establece la emisión de partículas en emisión volumétrica o solo de superficie.

  • Leer paralelo

    Determina el tamaño del mundo sobre la vida útil de las partículas individuales.

  • Leer paralelo

    Determina un rango aleatorio de velocidades (mínimo a máximo) en las que emitirán nuevas partículas, medido en studs por segundo.

  • Leer paralelo

    Determina los ángulos en los que las partículas pueden emitirse aleatoriamente, medidos en grados.

  • Leer paralelo

    Permite una escalada no uniforme de partículas, controlada por curva durante toda su vida útil.

  • Texture:ContentId
    Leer paralelo

    Determina la imagen renderizada en partículas.

  • Leer paralelo

    Valor entre 0 y 1 que controla la velocidad del efecto de partículas.

  • Determina la transparencia de las partículas durante sus vidas individuales.

  • Determina cuánta de la velocidad del padre se hereda por las partículas cuando se emite.

  • Si las partículas emitidas siguen el fuerza vectorialWorkspace.GlobalWind.

  • Leer paralelo

    Determina la posición de renderizado hacia atrás de las partículas; se usa para controlar qué partículas se renderizan en la parte superior/inferior.

Métodos

  • Clear():()

    Elimina todas las partículas que se han emitido.

  • Emit(particleCount : number):()

    Emite un número dado de partículas.

Propiedades

Acceleration

Leer paralelo

La propiedad Aceleración determina cómo cambia el Speed de las partículas a lo largo de su vida.Se define usando un Vector3 para determinar la aceleración en los ejes globales X / Y / Z y se mide en studs por segundo cuadrado.Cuando se cambia, esta propiedad afecta a todas las partículas emitidas por el emisor, tanto actuales como futuras.

La aceleración ralentizará las partículas si los puntos vectoriales en el opuesto EmissionDirection en el que se emiten. De lo contrario, las acelerará.

Brightness

Leer paralelo

Escala la luz emitida por el emisor cuando ParticleEmitter.LightInfluence es 0.

Leer paralelo

La propiedad Color determina el color de todas las partículas activas durante sus vidas individuales.El color se aplica al Texture al renderizar y usa la textura alfa junto con el emisor de Transparency .Si un emisor tiene un valor de LightEmission mayor que 0, los colores más oscuros hacen que las partículas parezcan más transparentes.

Cambiar esta propiedad afecta a todas las partículas emitidas por el emisor, tanto actuales como futuras.

Cuando esta propiedad usa un gradiente ColorSequence, el color presente de una partícula se determina al interpolar linealmente en la secuencia utilizando la edad de la partícula y su vida total.Por ejemplo, si una partícula apareció hace 2 segundos y tiene una vida de 4 segundos, el color será cualquier cosa que sea el 50% del camino a través del ColorSequence .

Drag

Leer paralelo

La propiedad Arrastrar determina la tasa en segundos en que las partículas individuales perderán la mitad de su velocidad a través del decaimiento exponencial.Se aplica el desplazamiento al escalar la velocidad esperada desde Speed y cualquier velocidad heredada del padre desde VelocityInheritance.Establecer esta propiedad en un valor negativo hará que las velocidades de las partículas aumenten exponencialmente.

EmissionDirection

Leer paralelo

La propiedad Dirección de emisión determina la cara (Enum.NormalId) del objeto padre desde el que las partículas emiten.Un negativo Speed significa que las partículas emiten en la dirección opuesta.SpreadAngle varía aún más la dirección de emisión.

Si agregas un ParticleEmitter a un Attachment que tiene una dirección, puedes rotar el archivo adjunto en sí (Attachment.Orientation) en lugar de usar esta propiedad.

Enabled

Leer paralelo

La propiedad Habilitada determina si las partículas emiten desde el emisor.Establecer esto en false detiene la aparición de partículas adicionales, pero cualquier partícula existente permanece activa hasta que expire.Esta propiedad es útil cuando tienes un efecto de partícula precargado que quieres mantener desactivado hasta que lo necesites para emitir partículas.

Si quieres eliminar todas las partículas de un emisor deshabilitado, llama a Clear() .Entonces, si lo desea, llame a Emit() en el emisor para emitir y renderizar partículas.

FlipbookFramerate

Leer paralelo

La propiedad FlipbookFramerate determina cuán rápido se anima la textura del libro de imágenes en fotogramas por segundo.Como Lifetime, puedes establecer un rango mínimo y máximo para aleatorizar la velocidad de fotogramas del libro electrónico, con un máximo de 30 fotogramas por segundo.

FlipbookIncompatible

Leer paralelo

El mensaje de error para mostrar si el Texture no es compatible para un libro electrónico.La textura del libro de imágenes debe tener dimensiones de píxeles 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, o 1024×1024.

Leer paralelo

La propiedad Diseño de libro de imágenes determina el diseño de la textura. Puede ser cualquier valor del enum:

  • Ninguno – Desactivar las funciones de libro electrónico y utilizar la textura como una textura estática única durante la vida de la partícula.
  • Cuadrícula 2x2 – 2×2 marcos para una animacionesde 4 marcos.
  • Cuadrícula4x4 – 4×4 marcos para una animacionesde 16 fotogramas.
  • Cuadrícula 8x8 – 8×8 marcos para una animacionesde 64 fotogramas.
Leer paralelo

La propiedad FlipbookMode determina el tipo de la animacionesde libro de imágenes. Puede ser cualquier valor del enum:

  • Bucle – Reproducir continuamente todos los marcos, comenzando de nuevo con el primer marco después de jugar el último.
  • Disparo único – Reproduce la animación solo una vez a lo largo de la vida de la partícula.Con esta configuración, la propiedad FlipbookFramerate no se aplica; en cambio, la velocidad de fotogramas se determina por la partícula Lifetime dividida por igual por el número de fotogramas en la animación. Las animaciones de un disparo son útiles para animaciones no repetitivas claras, como una explosión que crea una nube de humo y luego desaparece.
  • PingPong – Juega desde el primer al último marco, luego en reversa desde el último al primero, repitiendo a lo largo del Lifetime de la partícula.
  • Aleatorio – Reproduce los marcos en un orden aleatorio, mezclando/cruzando de un marco a otro.Esto puede ser útil para las texturas de partículas orgánicas a bajas velocidades de fotogramas, como estrellas que parpadean lentamente entre formas sutilmente diferentes.

FlipbookStartRandom

Leer paralelo

La propiedad FlipbookStartRandom determina si cada partícula comienza en un marco aleatorio de la animación en lugar de comenzar siempre en el primer marco.Un caso de uso es habilitar esta propiedad y también establecer FlipbookFramerate a cero, causando que cada partícula emitida sea un marco estático elegido aleatoriamente de la textura del libro de imágenes.

Lifetime

Leer paralelo

La propiedad Toda la vida define la edad máxima y mínima para las partículas recién emitidas.Los tiempos de vida se almacenan en una base por partícula, por lo que si se cambia este valor, las partículas existentes permanecerán activas hasta que finalice su vida elegida aleatoriamente.Una vida de 0 evitará que las partículas emitan en todos/todas.

LightEmission

Leer paralelo

La propiedad Emisión de luz determina la mezcla de los colores Texture con los colores que los respaldan.Un valor de 0 usa el modo de mezcla normal mientras que un valor de 1 usa la mezcla aditiva.Cuando se cambia, esta propiedad afecta instantáneamente a todas las partículas propiedad del emisor, tanto actuales como futuras.

Esta propiedad no debe confundirse con LightInfluence que determina cómo las partículas son afectadas por la luz ambiental.

Esta propiedad no hace que las partículas iluminen el entorno alrededor de ellas . Para lograrlo, considera usar un PointLight.

LightInfluence

Leer paralelo

La propiedad Influencia de luz determina cuánta luz ambiental afecta el color de las partículas individuales cuando se Renderizar.Debe estar en el rango de 0–1; el comportamiento de los valores fuera de este rango no está definido.En 0, las partículas no son influenciadas por la luz en absoluto (retienen la completa brillantez); en 1, las partículas son completamente influenciadas por la luz (en la oscuridad completa, las partículas serán negras).

Por defecto, este valor es 1 si se inserta con herramientas de Studio. Si se inserta usando Instance.new(), es 0.

LocalTransparencyModifier

Oculto
No replicado
Leer paralelo

LockedToPart

Leer paralelo

La propiedad Bloqueado para la parte determina si las partículas "se pegan" en la fuente de emisión (la Attachment o BasePart a la que el ParticleEmitter está asociado).Si true , las partículas activas se moverán en paso de bloque si se mueve el objeto padre.

Alternativamente, considere usar la propiedad VelocityInheritance con un valor de 1 que puede ser más apropiado para algunos efectos.

Leer paralelo

La propiedad Orientación determina qué modo de orientación usar para la geometría de partículas de un emisor.


<td>Comportamiento de partículas</td>
</tr>
</thead>
<tbody>
<tr>
<td><b>Cámara enfrentada</b></td>
<td>Cartelera cuádruple de cara a la cámara estándar; comportamiento predeterminado.</td>
</tr>
<tr>
<td><b>Mirando al mundo de la cámara hacia arriba</b></td>
<td>Mirando a la cámara, pero girando solo en el eje vertical hacia arriba del mundo <b>Y</b>.</td>
</tr>
<tr>
<td><b>Velocidad paralela</b></td>
<td>Alineado paralelo a su dirección de movimiento.</td>
</tr>
<tr>
<td><b>Velocidad perpendicular</b></td>
<td>Alineado perpendicular a su movimiento de dirección.</td>
</tr>
</tbody>
Orientación

Rate

Leer paralelo

La propiedad Tasa determina cuántas partículas se emiten por segundo mientras el emisor está Enabled .Es la inversa de la frecuencia, lo que significa que una tasa de 5 emite una partícula cada 0.2 segundos.Cuando se cambia, esta propiedad no tiene efecto en ninguna partícula activa.

RotSpeed

Leer paralelo

La propiedad Velocidad de rotación determina un rango aleatorio de velocidades angulares para partículas recién emitidas, medido en grados por segundo.Se elige una velocidad angular aleatoria al emitir, por lo que cambiar esta propiedad no afecta a las partículas activas.Esta propiedad, junto con Rotation, afecta el ángulo de la imagen de partícula renderizada.

Las partículas con velocidades angulares muy altas pueden parecer girar más lento o no en todos/todas, ya que el ángulo de rotación se sincroniza con la velocidad de renderizado del software.Por ejemplo, si las partículas giran exactamente a 360 grados en cada marco, no habrá cambio aparente en la rotación.

Rotation

Leer paralelo

La propiedad Rotación determina el rango de rotaciones en grados para partículas recién emitidas, medido en grados.Los valores positivos están en la dirección de las agujas del reloj.Esta propiedad se establece comúnmente en [0, 360] para proporcionar una rotación completamente aleatoria a nuevas partículas.RotSpeed también influye en la rotación de una partícula durante su vida útil.

Los cambios en este valor solo afectan a las partículas nuevas; las partículas existentes mantienen la rotación en la que se emitieron originalmente.

Leer paralelo

La propiedad Forma establece la forma del emisor a una caja delimitadora, esfera, cilindro o disco.Después de hacer una selección, puedes ajustar las propiedades ShapeStyle, ShapeInOut y ShapePartial para personalizar aún más la emisión de partículas.Para ejemplos visuales, vea aquí .

Leer paralelo

Establece si las partículas emiten hacia afuera, solo hacia adentro o en ambas direcciones. Para ejemplos visuales, vea aquí .

ShapePartial

Leer paralelo

Dependiendo del valor Shape , esta propiedad realiza una acción diferente:

  • Para los cilindros, especifica la proporción de radio superior.Un valor de 0 significa que la parte superior del cilindro tiene radio cero, lo que lo convierte en un cono.Un valor de 1 significa que el cilindro no tiene deformación.

  • Para discos, especifica la proporción de radio interno.Un valor de 0 significa que el disco está completamente cerrado (circulo/elipse), mientras que un valor de 1 significa que la emisión solo ocurre en el borde exterior del disco.Los valores entre 0 y 1 se emiten desde un anillo con una cierta espesura.

  • Para las esferas, especifica el ángulo hemisférico por el cual emiten las partículas.Un valor de 1 significa que las partículas emiten desde toda la esfera; un valor de 0.5 significa que las partículas emiten desde una media luna; un valor de 0 significa que las partículas solo emiten desde un solo punto en el polo norte.

Para ejemplos visuales, vea aquí.

Leer paralelo

Establece la emisión de partículas en emisión volumétrica o solo de superficie. Para ejemplos visuales, vea aquí .

Leer paralelo

La propiedad Tamaño determina el tamaño mundial de todas las partículas activas durante sus vidas individuales.Esta propiedad representa las dimensiones del cuadrado Texture para cada partícula.Es un NumberSequence que funciona de manera similar a Transparency .

El tamaño presente de una partícula se determina al interpolar linealmente en esta secuencia usando la edad de la partícula y su vida total.Por ejemplo, si una partícula apareció hace 2 segundos y tiene una vida de 4 segundos, el tamaño será cualquier cosa que sea el 50% del camino a través del NumberSequence.Para cualquier NumberSequenceKeypoint con un valor de sobre no nulo, se elige un valor aleatorio en el rango de sobre para cada punto clave para cada partícula cuando emite.

Leer paralelo

La propiedad Velocidad determina un rango aleatorio de velocidades (mínimo a máximo) en las que emitirán nuevas partículas, medido en studs por segundo.La velocidad de cada partícula se elige al emitir y se aplica en el EmissionDirection .Los valores negativos hacen que las partículas viajen en sentido inverso.

Tenga en cuenta que cambiar Speed no afecta a las partículas activas y mantienen cualquier velocidad que ya tengan.Sin embargo, Acceleration , Drag , y VelocityInheritance se pueden usar para afectar la velocidad de las partículas activas durante su vida útil.

SpreadAngle

Leer paralelo

La propiedad Angulo de difusión determina los ángulos aleatorios en los que se puede emitir una partícula.Por ejemplo, si el EmissionDirection es Superior (+ Y ), este Vector2 describe el tamaño de la difusión aleatoria del ángulo en los ejes X / Z , en grados.

Establecer un eje a 360 hará que las partículas emitan en todas las direcciones en un circulo .Establecer ambos en 360 causará que las partículas emitan en todas las direcciones en una esfera .

Leer paralelo

Permite una escalada no uniforme de partículas, controlada por curva durante toda su vida útil.Los valores mayores que 0 hacen que las partículas se reduzcan horizontalmente y crezcan verticalmente, mientras que los valores menores que 0 hacen que las partículas se reduzcan horizontalmente y crezcan verticalmente.

Texture

ContentId
Leer paralelo

La propiedad Textura determina la imagen renderizada en las partículas.Esta imagen está influenciada por Color , Transparency , LightInfluence y LightEmission .Las texturas con fondos transparentes funcionan mejor para las partículas.

TimeScale

Leer paralelo

Un valor entre 0 y 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; en 0 se congela en el tiempo.

Transparency

Leer paralelo

La propiedad Transparencia determina la transparencia de todas las partículas activas durante sus vidas individuales.Funciona de manera similar a Size en cómo afecta a las partículas con el tiempo.En términos de renderizado, un valor de 0 es completamente visible (opaco) y un valor de 1 es completamente invisible (no se renderiza en todos/todas).

La transparencia presente de una partícula se determina al interpolar linealmente en esta secuencia usando la edad de la partícula y su vida total.Por ejemplo, si una partícula apareció hace 2 segundos y tiene una vida de 4 segundos, la transparencia será lo que sea el 50% del camino a través del NumberSequence.Para cualquier NumberSequenceKeypoint con un valor de sobre no nulo, se elige un valor aleatorio en el rango de sobre para cada punto clave para cada partícula cuando emite.

VelocityInheritance

Leer paralelo

La propiedad Herencia de velocidad determina cuánto de la parte padre se hereda por las partículas cuando se emiten.Un valor de 0 significa que no se hereda velocidad, mientras que un valor de 1 significa que la partícula tendrá exactamente la misma velocidad que el padre BasePart.

Cuando se usa en conjunción con Drag, un emisor de partículas puede parecer "desprender" partículas de una pieza en movimiento.

WindAffectsDrag

Leer paralelo

Si es verdad, las partículas emitidas siguen el fuerza vectorialWorkspace.GlobalWind. Solo se aplica si la propiedad Drag es mayor que 0.

ZOffset

Leer paralelo

La propiedad ZOffset determina la posición de renderizado hacia atrás de las partículas, en studs, sin cambiar su tamaño en la pantalla.Cuando se cambia, esta propiedad afecta tanto las partículas actuales como futuras.Tenga en cuenta que esta propiedad acepta valores fraccionales; no es como GuiObject.ZIndex (un entero).

Los valores positivos mueven las partículas hacia la cámara y los valores negativos mueven las partículas lejos.Los valores negativos suficientes pueden causar que las partículas se representen dentro o detrás de la parte padre.

Métodos

Clear

()

El método Borrar elimina instantáneamente todas las partículas existentes que se han emitido por el a través de su emisión natural (no cero en un emisor) o a través de .


Devuelve

()

Muestras de código

This code sample causes a ParticleEmitter to ParticleEmitter:Emit() particles in bursts of 10 every 2 seconds. It ParticleEmitter:Clear()s any existing particles before doing so.

ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

Emit

()

El método Emite hará que el ParticleEmitter emita instantáneamente el número dado de partículas.

Parámetros

particleCount: number

El número de partículas para emitir.

Valor predeterminado: 16

Devuelve

()

Muestras de código

This code sample causes a parent ParticleEmitter to ParticleEmitter:Emit() particles based on how far the parent BasePart moves.

Emit Particles Over Distance

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 = false

This code sample causes a ParticleEmitter to ParticleEmitter:Emit() particles in bursts of 10 every 2 seconds. It ParticleEmitter:Clear()s any existing particles before doing so.

ParticleEmitter Burst

local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end

Eventos