RunService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service
Non répliqué

RunService contient des méthodes et des événements pour la gestion du temps ainsi que pour la gestion du contexte dans le

RunService héberge également des événements qui permettent à votre code d'adhérer au boucle de raccordement de Roblox, t

Résultats du test contextuel

<tbody>
<tr>
<td>Joueur en direct</td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Serveur en direct</td>
<td><code>faux</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td />
<td />
<td />
</tr>
<tr>
<td>Mode d'édition</td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>faux</code></td>
</tr>
<tr>
<td>Édition collaborative</td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>faux</code></td>
</tr>
<tr>
<td>Mode d'exécution</td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
</tr>
<tr>
<td>Mode de jeu (Client)</td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
</tr>
<tr>
<td>Mode de jeu (serveur)</td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
</tr>
<tr>
<td>Test d'équipe (Player)</td>
<td><code>vrai</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
</tr>
<tr>
<td>Test d'équipe (serveur)</td>
<td><code>faux</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
<td><code>vrai</code></td>
<td><code>faux</code></td>
</tr>
</tbody>

Résumé

Propriétés

Méthodes

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

    Donné un nom de chaîne d'une fonction et d'une priorité, ce méthode lie la fonction à RunService.PreRender .

  • Écrire en parallèle

    Renvoie si l'environnement actuel s'exécute sur le client.

  • Sécurité des plugins
    Écrire en parallèle

    Retourne si l'environnement actuel est en mode Edit.

  • Écrire en parallèle

    Retourne si le bouton courir a été pressé pour exécuter la simulation dans Studio.

  • Renvoie si l'expérience s'exécute actuellement.

  • Écrire en parallèle

    Retourne si l'environnement actuel s'exécute sur le serveur.

  • Écrire en parallèle

    Renvoie si l'environnement actuel s'exécute dans Studio.

  • Pause():void
    Sécurité des plugins

    Suspend la simulation de l'expérience si elle s'exécute, suspend la physique et les scripts.

  • Run():void
    Sécurité des plugins

    Exécute la simulation du jeu, exécute la physique et les scripts.

  • Stop():void
    Sécurité des plugins

    Arrête la simulation de l'expérience si elle s'exécute.

  • Définie une fonction qui était liée au rendu en utilisant RunService:BindToRenderStep() .

Évènements

Propriétés

ClientGitHash

Lecture uniquement
Non répliqué
Lecture parallèle
Sécurité des scripts Roblox
Non répliqué
Lecture parallèle
Sécurité des plugins

Méthodes

BindToRenderStep

void

La fonction BindToRenderStep() lie une fonction personnalisée à être appelée à un moment spécifique pendant le rendu. Il y a trois arguments principaux : name, priority, et lequel 1>function1> appeler.

Comme il est lié au processus de rendu du client, BindToRenderStep() ne peut être appelé que sur le client.

Nom

Le paramètre name est une étiquette pour le binding et peut être utilisé avec RunService:UnbindFromRenderStep() si le binding n'est plus nécessaire.


local RunService = game:GetService("RunService")
local function functionToBind() end
-- Liaison de la fonction ci-dessus à la fonction de nom "tempBinding"
RunService:BindToRenderStep("tempBinding", 1, functionToBind)
-- Désactivez la fonction liée à "tempBinding"
RunService:UnbindFromRenderStep("tempBinding")
Priorité

La priority de la binding est un nombre entier ; il détermine quand pendant le rendu, appeler la fonction personnalisée. Le plus bas de ce nombre détermine quand la fonction personnalisée sera appelée. Si deux binding ont la même priorité, le moteur Roblox choisira aléatoirement le premier pour s'exécuter. Les scripts de contrôle par défaut de Roblox s'exécuteront avec ces priorités spécifiques :

  • Entrée du joueur : 100
  • Commandes de la caméra : 200 Pour la commodité, l'archive Enum.RenderPriority peut être utilisée pour déterminer la valeur entière à configurer. Par exemple, pour créer un lien juste avant la mise à jour de la caméra par défaut, soustrayez simplement 1 de la niveaude priorité de la caméra.

Lors de l'utilisation de Enum.RenderPriority, n'oubliez pas d'utiliser .Value à la fin de l'enum souhaité. RunService:BindToRenderStep() ne fonctionnera pas si vous n'utilisez que l'enum posséder.


local RunService = game:GetService("RunService")
local function beforeCamera(delta)
-- Le code ici s'exécutera avant le script de caméra Roblox par défaut
end
RunService:BindToRenderStep("Before camera", Enum.RenderPriority.Camera.Value - 1, beforeCamera)
Fonction personnalisée et temps Delta

L' dernier argument ( function ) est la fonction personnalisée à appeler. Cette fonction sera passée un paramètre nommé deltaTime qui montre combien de temps s'est écoulé entre le début du rendu précédent et le début du rendu actuel.

Toutes les mises à jour de rendu attendront que le code dans la étape de rendu finisse. Assurez-vous que tout le code appelé par BindToRenderStep() fonctionne rapidement et efficacement ; si le code prend trop longtemps, les visuels d'expérience seront coupables.

Paramètres

name: string

Balise pour le binding qui peut être utilisé avec Unbind si le binding n'est plus nécessaire.

priority: number

La priorité du lien comme un nombre entier ; il détermine quand pendant le rendu, appeler la fonction personnalisée. Plus ce nombre est bas, plus la fonction personnalisée sera appelée tôt. Si deux liens ont la même priorité, le moteur Roblox choisira aléatoirement l'un pour s'exécuter en premier.

function: function

La fonction personnalisée étant liée.


Retours

void

Échantillons de code

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

Écrire en parallèle

Si le code qui a invoqué cette méthode est exécuté dans un contexte client (dans un LocalScript , dans un ModuleScript requis par un Class.LocalScript

Si cette méthode renvoie true, l'environnement actuel peut accéder à des fonctionnalités client uniquement comme RunService.PreRender ou Players.LocalPlayer.


Retours

Que l'environnement actuel exécute le client.

IsEdit

Sécurité des plugins
Écrire en parallèle

Cette méthode renvoie si l'environnement actuel est en mode « modifier», par exemple dans Studio lorsque l'expérience n'est pas en cours d'exécution.

IsEdit() retournera le contraire de IsRunning(), sauf lorsque la simulation a été暂停, dans ce cas, les deux méthodes retourneront false.


Retours

Que l'environnement actuel soit en mode « modifier».

IsRunMode

Écrire en parallèle

Cette méthode renvoie si le bouton Run a été pressé pour exécuter la simulation dans Studio. Il continuera à renvoyer true si la simulation a été interrompue à l'aide du bouton Pause ; cependant, une fois qu'il a été arrêté à l'aide du bouton 2> Stop2>, il retournera à l'exécution de 5> false5>.

Remarquez que Studio n'entre en mode "lancer" que lorsque le bouton Exécuter est appuyé, non pas le bouton Jouer. Notez également que cette méthode retournera false si la simulation a été démarrée à l'aide de 2> Class.RunService:Run()2> plutôt que le bouton 5>Jouer5>.


Retours

Whether the Exécuter button has been pressed to run the simulation in Studio.

IsRunning

Renvoie si l'expérience s'exécute actuellement, ce qui signifie que la simulation a été exécutée à l'aide des boutons Courir ou Jouer .

IsRunning() retournera toujours le contraire de IsEdit() sauf quand la simulation a été暂停,在此 случае,两方法都会返回 false


Retours

Whether l'expérience est actuellement en cours d'exécution.

IsServer

Écrire en parallèle

Cette méthode renvoie si l'environnement actuel s'exécute sur le serveur. Si le code qui a invoqué cette méthode s'exécute dans un contexte de serveur (dans

Si cette fonction renvoie vrai, alors l'environnement actuel peut accéder à des fonctionnalités serveur comme ServerStorage ou ServerScriptService.


Retours

Que l'environnement actuel s'exécute sur le serveur.

IsStudio

Écrire en parallèle

Cette méthode renvoie si l'environnement actuel s'exécute dans Studio. Il peut être utilisé pour envelopper le code qui ne s'exécute que lors du test dans Studio.


Retours

Que l'environnement actuel s'exécute dans Studio.

Pause

void
Sécurité des plugins

Cette méthode suspend la simulation de l'expérience si elle s'exécute, suspend la physique et les scripts. La simulation peut être activée en utilisant Run() ou le bouton Run dans Studio ; lorsque la simulation est suspendue, IsRunning() renverra 1> false1>.


Retours

void

Run

void
Sécurité des plugins

Cette méthode exécute la simulation de l'expérience (physique et scripts). Lorsque la simulation est en cours d'exécution, IsRunning() renverra true . Cependant, IsRunMode() ne renverra que 1> true1> si


Retours

void

Stop

void
Sécurité des plugins

Cette méthode arrête la simulation de l'expérience si elle s'exécute. Lorsque la simulation est arrêtée, IsRunning() retournera false et IsEdit() retournera 1>1> Class.RunService:IsRunService1> .

Contrairement au bouton Arrêter dans Studio, l'appel de cette méthode ne restaurera pas l'expérience à l'état où elle était avant l'lancerde la simulation. Cela signifie que toute modification apportée à l'expérience par la simulation physique et les scripts persistera après la fin de la simulation.


Retours

void

UnbindFromRenderStep

void

Donné un nom à une fonction envoyée à BindToRenderStep() , cette méthode va débinder la fonction d'être appelée pendant PreRender . Ceci est utilisé pour débinder les fonctions liées une fois qu'elles ne sont plus nécessaires, ou quand elles ne doivent plus tirer chaque étape.

Si il n'y a pas de fonction liée par le nom donné, cette méthode ne prend pas d'action et continue sans générer d'erreurs.

Paramètres

name: string

Le nom de la fonction qui est en train d'être définie.


Retours

void

Évènements

Heartbeat

L'événement Heartbeat déclenche chaque cadre, après que la simulation de physique soit terminée. L'argument deltaTime indique le temps écoulé depuis le dernier cadre.

Cet événement est lorsque la plupart des scripts s'exécutent. Il se produit à la fin de chaque cadre et il est également lorsque les scripts d'attente sont exécutés, tels que ceux programmés avec la bibliothèque task. Heartbeat est couramment utilisé pour les tâches permanentes, telles que la régénération du noyau du jeu de santé.

En suivant cette étape, le moteur envoie des mises à jour et des événements de propriété sur le serveur ou les clients qui sont ensuite reçus comme une partie de la étape de réplication de réception.

Paramètres

deltaTime: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


PostSimulation

L'événement PostSimulation déclenche chaque cadre, après que la simulation de physique soit terminée. L'argument deltaTimeSim indique le temps écoulé depuis le dernier cadre.

Cet événement est utile pour faire des ajustements finaux sur la sortie de la simulation. Après cette phase, le moteur déclenche l'événement Heartbeat.

Paramètres

deltaTimeSim: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


PreAnimation

L'événement PreAnimation lance chaque cadre, avant la simulation de physique, mais après le rendu. L'argument deltaTimeSim indique le temps écoulé depuis le cadre précédent.

Cet événement est utile pour modifier les objets d'animation, tels que l'ajustement de leur vitesse ou de leur priorité. Une fois que l'événement PreAnimation est terminé, le moteur exécute ces animations, ce qui met à jour les transformations jointes qui seront ensuite utilisées pour mettre à jour les objets pendant la simulation physique.

Après que les animations sont exécutées, le moteur déclenche l'événement PreSimulation.

Paramètres

deltaTimeSim: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


PreRender

L'événement PreRender (équivalent à Class.RunService.RenderStepped|RenderStepped) déclenche chaque cadre, avant que le cadre soit rendu. L'argument deltaTimeRender indique le temps écoulé depuis le dernier cadre.

Cet événement vous permet d'exécuter du code et de mettre à jour le monde avant qu'il ne soit dessiné sur l'écran d'un joueur. Ceci est utile pour les ajustements de dernière minute tels que le changement de positions d'objets, la mise à jour des animations ou la préparation d'effets visuels, mais il doit être utilisé judicieusement car le moteur ne peut pas commencer à rendre le cadre jusqu'à ce que le code s'exécute dans cet événement.

Puisque PreRender est côté client, il ne peut être utilisé que dans un LocalScript , dans un ModuleScript requis par un 2>Class.LocalScript2> , ou dans un 5>Class.Script5> avec 8>Class.BaseScript.RunContext|RunContext

Après la phase PreRender, la phase de simulation commence avec l'événement PreAnimation.

Paramètres

deltaTimeRender: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


PreSimulation

L'événement PreSimulation (équivalent à Stepped ) déclenche chaque cadre, avant la simulation de physique. L' argument deltaTimeSim indique le temps écoulé depuis le cadre précédent.

Cet événement est utile pour ajuster des propriétés telles que la vitesse ou les forces juste avant qu'elles ne soient appliquées comme une partie de la simulation. La simulation s'exécute alors, potentiellement plusieurs fois, comme le solvant de physique s'exécute à une fréquence plus élevée que les autres systèmes d'Engine. Une fois cela terminé, l'événement PostSimulation est lancé.

Paramètres

deltaTimeSim: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


RenderStepped

L'événement RenderStepped (équivalent à PreRender ) déclenche chaque cadre, avant que le cadre soit rendu. L' argument deltaTime indique le temps écoulé depuis le dernier cadre.

Cet événement vous permet d'exécuter du code et de mettre à jour le monde avant qu'il ne soit dessiné sur l'écran d'un joueur. Ceci est utile pour les ajustements de dernière minute tels que le changement de positions d'objets, la mise à jour des animations ou la préparation d'effets visuels, mais il doit être utilisé judicieusement car le moteur ne peut pas commencer à rendre le cadre jusqu'à ce que le code s'exécute dans cet événement.

Comme RenderStepped est côté client, il ne peut être utilisé que dans un LocalScript , dans un ModuleScript requis par un 1> Class.LocalScript1> , ou dans un 4> Class.Script4> avec

Après la phase RenderStepped, la phase de simulation commence avec l'événement PreAnimation.

Paramètres

deltaTime: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.


Stepped

L'événement Stepped (équivalent à PreSimulation ) déclenche chaque cadre, avant la simulation de physique. L' argument deltaTime indique le temps écoulé depuis le cadre précédent.

Cet événement est utile pour ajuster des propriétés telles que la vitesse ou les forces juste avant qu'elles ne soient appliquées comme une partie de la simulation. La simulation s'exécute alors, potentiellement plusieurs fois, comme le solvant de physique s'exécute à une fréquence plus élevée que les autres systèmes d'Engine. Une fois cela terminé, l'événement PostSimulation est lancé.

Paramètres

time: number

La durée (en secondes) pendant laquelle RunService a été exécuté.

deltaTime: number

Le temps (en secondes) qui s'est écoulé depuis le cadre précédent.