Ir al contenido

Ciclo de vida

El módulo del plugin exporta tres métodos de ciclo de vida. Dos de ellos los llamas tú. Uno de ellos lo lees.

Despierta el motor. Inicia la conexión Heartbeat que impulsa la actualización por fotograma de cada partícula activa. Sin ella, :Emit, :EnableEmit y :EmitAnimate siguen generando clones — simplemente nunca avanzan. Los clones quedan congelados en su CFrame inicial y se acumulan indefinidamente, ya que el Heartbeat es lo que los mueve, ejecuta sus gráficas y los destruye cuando termina su tiempo de vida. Por eso, siempre llama a :Activate antes de cualquier llamada de emisión.

local Part_Icles = require(game.ReplicatedStorage:WaitForChild("Part_Icles"))
Part_Icles:Activate()
-- now safe to emit
Part_Icles:Emit(workspace.MySpark)

En Studio, el plugin activa el entorno de ejecución por sí mismo cuando se carga — no hay ningún botón en la barra de herramientas que activar; el entorno ya está en marcha cuando empiezas a crear. En un juego publicado, tu script debe llamar a :Activate() explícitamente antes de cualquier emisión.

:Activate es idempotente — llamarlo dos veces no tiene ningún efecto.

Detiene la conexión Heartbeat y desmonta el estado activo. Cada clon en vuelo del modo Emit se destruye, cada bucle :Enable en ejecución se cancela, las texturas ancladas se liberan y la carpeta del entorno de ejecución se destruye.

Para las entradas del modo Animate, la limpieza se divide por tipo:

  • Tipos 3D (Part, Attachment, Beam, Model) animan la fuente in situ, no un clon. Deactivate restaura el CFrame inicial de la fuente y establece Enabled = false en los Beams. La instancia fuente permanece intacta — es tu elemento de autoría, no algo que posea el entorno de ejecución.
  • Tipos de espacio de pantalla (Blur, Bloom, ColorCorrection, Atmosphere) e ImageLabel usan un clon singleton. Deactivate destruye ese clon — la fuente no se ve afectada.
Part_Icles:Deactivate()

Es seguro llamarlo múltiples veces — las re-entradas no tienen efecto una vez que todo ya está desmontado.

Se usa principalmente cuando la interfaz de Studio del plugin se cierra. Los juegos publicados raramente lo necesitan: un emisor que dura toda la sesión normalmente permanece activado hasta que el jugador se va.

Devuelve la carpeta contenedora donde los clones emitidos de Part / Attachment / Model se convierten en hijos. Se crea de forma diferida en la primera llamada. Reside bajo workspace.Terrain para mantener los clones fuera del listado principal del explorador y fuera de los guardados del archivo de lugar.

local folder = Part_Icles:GetFolder()

workspace.Terrain es el padre por dos razones: los clones emitidos no pueden seleccionarse en el listado del workspace del explorador, y Archivable = false en la carpeta mantiene los clones fuera del historial de deshacer y de los guardados del archivo de lugar.

Normalmente no necesitas esto directamente — está expuesto para herramientas que necesiten recorrer la jerarquía del entorno de ejecución. Otros destinos de emisión (los PointLights permanecen en la fuente, los efectos de pantalla se convierten en hijos de Lighting, las emisiones de ImageLabel viven en un ScreenGui interno) no son accesibles mediante este método.

Con el motor activado, puedes emitir. El siguiente capítulo — Emisión — cubre los seis despachadores de nivel superior: :Emit, :EmitAnimate, :Enable, :EnableEmit, :Disable, :AbsoluteEmit, y la relación entre ellos.