RunService

RunService se puede utilizar para animación. También permite manejar actualizaciones en tiempo real y control cuadro por cuadro.

EventosDetalles
HeartbeatSe dispara en cada cuadro después de que la simulación de física se haya completado.
PostSimulationSe dispara en cada cuadro después de que la simulación de física se haya completado.
PreAnimationSe dispara en cada cuadro antes de la simulación de física pero después del renderizado.
PreRenderSe dispara en cada cuadro antes de que el cuadro sea renderizado.
PreSimulationSe dispara en cada cuadro antes de la simulación de física.
RenderSteppedSe dispara en cada cuadro antes de que el cuadro sea renderizado.
SteppedSe dispara en cada cuadro antes de la simulación de física.

RunService vs wait()

local part = Instance.new("Part")
part.Size = Vector3.new(4, 4, 4)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace

local speed = 5 -- studs per second

spawn(function()
    while true do
        wait(0.033) -- Approximate wait time for 30 FPS (Frame per second)
        part.Position = part.Position + Vector3.new(speed * 0.033, 0, 0)
    end
end)
wait() es menos preciso y puede variar ligeramente en el tiempo, lo que lleva a animaciones menos fluidas.

RunService vs TweenService

  • Ideal para animaciones suaves y predecibles.
  • Mejor para transiciones simples de propiedades.
  • Fácil de usar con estilos de suavizado incorporados.
  • TweenService aprovecha mecanismos similares a los que proporciona RunService para asegurar animaciones suaves, incluyendo el uso de delta time para la interpolación independiente del cuadro de propiedades.
  • Adecuado para actualizaciones dinámicas en tiempo real.
  • Permite el control cuadro por cuadro.
  • Versátil para diversas tareas más allá de las animaciones.
  • RenderStepped está vinculado al proceso de renderizado, que ocurre en el lado del cliente, por lo que está limitado a LocalScripts.

Ejemplo de Caso de Uso de RunService

EjemplosDetalles
Custom Render LogicGUIs 3D: Crea y actualiza elementos de GUI en 3D que deben seguir a las partes o personajes en el mundo del juego.
Player-Exclusive FeaturesMecánicas de Juego Locales: Implementa características o mecánicas que solo deberían afectar al jugador local, como efectos de partículas locales o cambios de iluminación.
Camera ManipulationControl Dinámico de la Cámara: Actualiza suavemente la posición, orientación o enfoque de la cámara en función de las acciones del jugador o eventos del juego para crear una experiencia más inmersiva.

Si encuentras útil este tutorial y deseas apoyar mi trabajo, considera invitarme a un café.

¡Muchas gracias por tu apoyo!

Invítame a un café