RunService

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í.

No creable
Servicio
No replicado

RunService contiene métodos y eventos para la gestión del tiempo, así como para la gestión del contexto en el que se

RunService también alberga eventos que permiten que su código se adhiera a la cadena de marco de Roblox, como Class

Resultados de la prueba de contexto

<tbody>
<tr>
<td>Jugador en vivo</td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Servidor en vivo</td>
<td><code>falso</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Modo de Editar</td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>falso</code></td>
</tr>
<tr>
<td>Edición colaborativa</td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>falso</code></td>
</tr>
<tr>
<td>Modo de ejecución</td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
</tr>
<tr>
<td>Modo de juego (Cliente)</td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
</tr>
<tr>
<td>Modo de juego (servidor)</td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
</tr>
<tr>
<td>Prueba de equipo (jugador)</td>
<td><code>verdadero</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
</tr>
<tr>
<td>Prueba de equipo (servidor)</td>
<td><code>falso</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
<td><code>verdadero</code></td>
<td><code>falso</code></td>
</tr>
</tbody>

Resumen

Propiedades

Métodos

  • BindToRenderStep(name : string,priority : number,function : function):void

    Dado un nombre de función y una prioridad, este método vincula la función a RunService.PreRender .

  • Escribir paralelo

    Devuelve si el entorno actual está en ejecución en el cliente.

  • Seguridad del plugin
    Escribir paralelo

    Devuelve si el entorno actual está en modo Edit

  • Escribir paralelo

    Devuelve si el botón Ejecutar ha sido presionado para ejecutar la simulación en Studio.

  • Regresa si la experiencia está actualmente en ejecución.

  • Escribir paralelo

    Devuelve si el entorno actual está en ejecución en el servidor.

  • Escribir paralelo

    Devuelve si el entorno actual está en ejecución en Studio.

  • Pause():void
    Seguridad del plugin

    Pausa la simulación de la experiencia si está en ejecución, suspendiendo la física y los scripts.

  • Run():void
    Seguridad del plugin

    Ejecuta la simulación del juego, ejecutando física y scripts.

  • Stop():void
    Seguridad del plugin

    Detiene la simulación de la experiencia si está en ejecución.

  • Desvincula una función que estaba vinculada al rendimiento usando RunService:BindToRenderStep() .

Eventos

Propiedades

ClientGitHash

Solo lectura
No replicado
Seguridad de scripts Roblox
Leer paralelo
No replicado
Seguridad del plugin
Leer paralelo

Métodos

BindToRenderStep

void

La función BindToRenderStep() vincula una función personalizada para que se llame en un momento específico durante el paso de renderizado. Hay tres argumentos principales: name , priority y qué 1> function1> para llamar.

Dado que está vinculado al proceso de renderizado del cliente, BindToRenderStep() solo se puede llamar en el cliente.

Nombre

El parámetro name es una etiqueta para la vinculación y se puede usar con RunService:UnbindFromRenderStep() si la vinculación ya no es necesaria.


local RunService = game:GetService("RunService")
local function functionToBind() end
-- Vincula la función anterior a la vinculación llamada "tempBinding"
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- Desvincular la función vinculada a "tempBind"
RunService:UnbindFromRenderStep("tempBinding")
Prioridad

El priority de la vinculación es un entero; Determina cuándo durante el paso de renderizado para llamar la función personalizada. Cuanto menor este número, más temprano la función personalizada se llamará. Si dos vinculaciones tienen la misma prioridad, el motor de Roblox elegirá aleatoriamente uno para ejecutar primero. Los scripts de control predeterminados de Roblox se ejecutan con estos scripts de control específicos:

  • Entrada del jugador: 100
  • Controles de la cámara: 200 Para conveniencia; el Enum.RenderPriority enum se puede usar para determinar el valor de números para establecer un vínculo. Por ejemplo, para hacer un vínculo derecho antes de la actualización de la cámara por defecto, simplemente restar 1 del nivel de prioridad de la cámara.

Al usar Enum.RenderPriority, recuerda usar .Value en el final del nombre de la lista deseada. RunService:BindToRenderStep() no funcionará si se usa solo el nombre de la lista.


local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- El código aquí se ejecutará antes del script de cámara predeterminado de Roblox
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
Función Personalizada y Tiempo de Delta

El último argumento ( function ) es la función personalizada para llamar. Esta función se pasará un parámetro llamado deltaTime que muestra cuánto tiempo se ha pasado entre el comienzo de la renderización anterior y el comienzo de la renderización actual.

Todas las actualizaciones de renderizado se esperarán hasta que el código en el paso de renderizado termine. Asegúrese de que cualquier código llamado por BindToRenderStep() ejecute rápidamente y de manera eficiente; si el código toma demasiado tiempo, las imágenes de la experiencia serán difíciles de ver.

Parámetros

name: string

Etiqueta para la vinculación que se puede usar con Unbind si la vinculación ya no es necesaria.

priority: number

La prioridad de la vinculación como un número entero; esto determina cuándo durante el paso de renderizado para llamar la función personalizada. El menor de este número, la fecha en que se ejecutará la función personalizada. Si dos vinculaciones tienen la misma prioridad, el motor de Roblox elegirá aleatoriamente una para ejecutar primero.

function: function

La función personalizada está siendo vinculada.


Devuelve

void

Muestras de código

Frame Moving in Circle

local RunService = game:GetService("RunService")
-- How fast the frame ought to move
local SPEED = 2
local frame = script.Parent
frame.AnchorPoint = Vector2.new(0.5, 0.5)
-- A simple parametric equation of a circle
-- centered at (0.5, 0.5) with radius (0.5)
local function circle(t)
return 0.5 + math.cos(t) * 0.5, 0.5 + math.sin(t) * 0.5
end
-- Keep track of the current time
local currentTime = 0
local function onRenderStep(deltaTime)
-- Update the current time
currentTime = currentTime + deltaTime * SPEED
-- ...and the frame's position
local x, y = circle(currentTime)
frame.Position = UDim2.new(x, 0, y, 0)
end
-- This is just a visual effect, so use the "Last" priority
RunService:BindToRenderStep("FrameCircle", Enum.RenderPriority.Last.Value, onRenderStep)
--RunService.RenderStepped:Connect(onRenderStep) -- Also works, but not recommended
RunService Custom Function

local RunService = game:GetService("RunService")
local function checkDelta(deltaTime)
print("Time since last render step:", deltaTime)
end
RunService:BindToRenderStep("Check delta", Enum.RenderPriority.First.Value, checkDelta)
Bind and Unbind a Function

local RunService = game:GetService("RunService")
-- Step 1: Declare the function and a name
local NAME = "Print Hello"
local function printHello()
print("Hello")
end
-- Step 2: Bind the function
RunService:BindToRenderStep(NAME, Enum.RenderPriority.First.Value, printHello)
-- Step 3: Unbind the function
RunService:UnbindFromRenderStep(NAME)

IsClient

Escribir paralelo

Si el código que invocó este método se está ejecutando en un contexto de cliente (en un LocalScript , en un ModuleScript requerido por un Class.LocalScript

Si este método返回 true , el entorno actual puede acceder a características solo para clientes como RunService.PreRender o Players.LocalPlayer .


Devuelve

Si el entorno actual está ejecutando el cliente.

IsEdit

Seguridad del plugin
Escribir paralelo

Este método regresa si el entorno actual está en modo "editar", por ejemplo en Studio cuando la experiencia no está en ejecución.

IsEdit() devolverá el valor inverso de IsRunning(), excepto cuando la simulación se haya pausado, en cuyo caso ambos métodos devolverán false .


Devuelve

Si el entorno actual está en modo "editar".

IsRunMode

Escribir paralelo

Este método devuelve si el botón Correr ha sido presionado para ejecutar la simulación en Studio. Continuará devolviendo true si la simulación se ha detenido usando el botón Pausar; sin embargo, una vez que se ha detenido usando el botón 2> Detener2>, devolverá a devolver 5> false 5>.

Tenga en cuenta que Studio solo ingresa en el modo "ejecutar" cuando se presiona el botón Ejecutar, no el botón Jugar. También tenga en cuenta que este método devolverá false si la simulación se inicia con el botón 2>Ejecutar2> en lugar del botón 5>Jugar5>.


Devuelve

Si el botón Correr se ha presionado para ejecutar la simulación en Studio.

IsRunning

Devuelve si la experiencia está ejecutando actualmente, lo que significa que la simulación se ha ejecutado utilizando los botones Correr o Jugar .

IsRunning() siempre devolverá el valor inverso de IsEdit() excepto cuando la simulación haya sido pausada, en cuyo caso ambos métodos devolverán false .


Devuelve

Si la experiencia está actualmente en marcha.

IsServer

Escribir paralelo

Este servidorScript 的代码,它将在 RunContext

Si esta función返回 true, then the current environment can access server-only features like ServerStorage or ServerScriptService .


Devuelve

Si el entorno actual está ejecutando en el servidor.

IsStudio

Escribir paralelo

Este método返回 Studio 中是否运行当前环境。 可以用于包装只需在 Studio 中测试时执行的代码。


Devuelve

Si el entorno actual está en ejecución en Studio.

Pause

void
Seguridad del plugin

Este método pausa la simulación de la experiencia si está en ejecución, sospecha la simulación de la física y los scripts. La simulación se puede iniciar usando Run() o el botón Run en Studio; cuando la simulación se detiene, IsRunning() retornará 1> false1> .


Devuelve

void

Run

void
Seguridad del plugin

Este método ejecuta la simulación de la experiencia (física y scripts). Cuando la simulación está en ejecución, IsRunning() devolverá true . Sin embargo, IsRunMode() solo devolverá 2> true2> si la simulación se


Devuelve

void

Stop

void
Seguridad del plugin

Este método detiene la simulación de la experiencia si está en ejecución. Cuando la simulación se detiene, IsRunning() devolverá false y IsEdit() devolverá 1>1> Class.RunService:IsRunService1> .

En contraste con el botón Detener en Studio, llamar a este método no restaurará la experiencia al estado en que se encontraba antes de que se ejecutarla simulación. Esto significa que cualquier cambio que se haya realizado a la experiencia por la simulación de física y los scripts persistirá después de que la simulación se haya terminado.


Devuelve

void

UnbindFromRenderStep

void

Dado un nombre de una función enviada a BindToRenderStep() , este método desvinculará la función de ser llamada durante PreRender . Esto se usa para desvincular las funciones vinculadas una vez que ya no son necesarias, o cuando ya no es necesario ejecutar cada paso.

Si no hay función vinculada por el nombre dado, este método no toma ninguna acción y continúa sin generar un error.

Parámetros

name: string

El nombre de la función que se está desвяzando.


Devuelve

void

Eventos

Heartbeat

El evento Heartbeat cada vez que se activa, después de que la simulación de física se complete. El argumento deltaTime indica el tiempo que ha pasado desde el marco anterior.

Este evento es cuando la mayoría de los scripts se ejecutar. Ocurre al final de cada marco y también es cuando se ejecutan cualquier script de espera, como los que se programan con la task biblioteca. Heartbeat es comúnmente usado para tareas periódicas, como actualizar sistemas de juego clave como la regeneración de salud.

Luego, el motor envía actualizaciones de propiedades y eventos al servidor o clientes que se reciben más tarde como parte del paso de replicación recibir paso.

Parámetros

deltaTime: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


PostSimulation

El evento PostSimulation activa cada marco, después de que la simulación de física se haya completado. El argumento deltaTimeSim indica el tiempo que ha pasado desde el marco anterior.

Este evento es útil para hacer los ajustes finales al resultado de la simulación. Después de esta fase, el motor activa el evento Heartbeat .

Parámetros

deltaTimeSim: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


PreAnimation

El evento PreAnimation activa cada marco, antes de la simulación de física pero después de renderizar. El argumento deltaTimeSim indica el tiempo que ha pasado desde el marco anterior.

Este evento es útil para modificar objetos de animación, como ajustar su velocidad o prioridad. Una vez que el evento PreAnimation esté completado, el motor comenzará a ejecutar estas animaciones, actualizando las transformaciones compartidas que se usarán más tarde para actualizar los objetos durante la simulación de física.

Después de que las animaciones se hayan ejecutado, el motor activa el evento PreSimulation .

Parámetros

deltaTimeSim: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


PreRender

El evento PreRender (equivalente a RenderStepped ) se activa cada marco, antes de que se renderice el marco. El argumento deltaTimeRender indica el tiempo que ha elapsed desde el marco anterior.

Este evento le permite ejecutar código y actualizar el mundo antes de que se dibuje en la pantalla del jugador. Esto es útil para ajustes de último minuto, como cambiar posiciones de objetos, actualizar animaciones o preparar efectos visuales, pero debe usarse con moderación, ya que el motor no puede comenzar a renderizar el marco hasta que el código que se ejecuta en este evento haya terminado.

Como PreRender es client-side, solo se puede usar en un LocalScript , en un ModuleScript requerido por un 1> Class.LocalScript1> , o en un 4> Class.Script4> con

Después de la fase PreRender, la fase de simulación comienza con el evento Class.RunService.PreAnimation|PreAnimation ".

Parámetros

deltaTimeRender: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


PreSimulation

El evento PreSimulation (equivalente a Stepped ) se activa cada marco, antes de la simulación de física. El argumento deltaTimeSim indica el tiempo que ha elapsed desde el marco anterior.

Este evento es útil para ajustar propiedades como la velocidad o las fuerzas justo antes de que se apliquen como parte de la simulación. La simulación entonces se ejecuta, potencialmente varias veces, a medida que el solucionador de física se ejecuta a una frecuencia más alta que otros sistemas de motores. Una vez que esto esté completado, el evento de PostSimulation se disparará.

Parámetros

deltaTimeSim: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


RenderStepped

El evento RenderStepped (equivalente a PreRender ) se activa cada marco, antes de que se renderice el marco. El argumento deltaTime indica el tiempo que ha pasado desde el marco anterior.

Este evento le permite ejecutar código y actualizar el mundo antes de que se dibuje en la pantalla del jugador. Esto es útil para ajustes de último minuto, como cambiar posiciones de objetos, actualizar animaciones o preparar efectos visuales, pero debe usarse con moderación, ya que el motor no puede comenzar a renderizar el marco hasta que el código que se ejecuta en este evento haya terminado.

Como RenderStepped es client-side, sólo se puede usar en un LocalScript , en un ModuleScript requerido por un 1> Class.LocalScript1> , o en un 4> Class.Script4>

Después de la fase RenderStepped, la fase de simulación comienza con el evento Class.RunService.PreAnimation|PreAnimation ".

Parámetros

deltaTime: number

El tiempo (en segundos) que ha pasado desde el marco anterior.


Stepped

El evento Stepped (equivalente a PreSimulation ) se activa cada marco, antes de la simulación de física. El argumento deltaTime indica el tiempo que ha elapsed desde el marco anterior.

Este evento es útil para ajustar propiedades como la velocidad o las fuerzas justo antes de que se apliquen como parte de la simulación. La simulación entonces se ejecuta, potencialmente varias veces, a medida que el solucionador de física se ejecuta a una frecuencia más alta que otros sistemas de motores. Una vez que esto esté completado, el evento de PostSimulation se disparará.

Parámetros

time: number

La duración (en segundos) que RunService ha estado ejecutando.

deltaTime: number

El tiempo (en segundos) que ha pasado desde el marco anterior.