Taakplanner

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

De taakplanner coördineert taken die in elk frame worden uitgevoerd terwijl het spel draait, zelfs wanneer het is gepauzeerd. Deze taken omvatten het detecteren van spelersinvoer, het animeren van personages, het bijwerken van de fysica-simulatie en het hervatten van scripts in een task.wait()-toestand.

Hoewel er meerdere taken tegelijk kunnen worden uitgevoerd, kan de taakplanner mogelijk overbelast raken, vooral in de volgende situaties:

  • Het gebruik van een aangepaste karakterrig of invoerschema.
  • Het zelf animeren van onderdelen (in plaats van een Animator te gebruiken).
  • Sterk afhankelijk zijn van nauwkeurige fysica.
  • Regelmatig objecten repliceren.

RunService

De meest directe manier om frame-voor-frame taken toe te voegen, is via de volgende leden van RunService:

Plannerprioriteit

De taakplanner categoriseert en voltooit taken in de volgende volgorde. Sommige taken voeren mogelijk geen werk uit in een frame, terwijl andere meerdere keren kunnen worden uitgevoerd.

* Scriptuitvoering tijdens RunService.Heartbeat verschilt afhankelijk van de instelling van Workspace.SignalBehavior in jouw spel. Zie Uitgestelde evenementen.

Beste praktijken

Om prestatiegerichte spellen met efficiëntie in gedachten te bouwen, let op het volgende:

  • Verbind/bind geen functies aan de renderstap, tenzij absoluut noodzakelijk. Alleen taken die moeten worden uitgevoerd na invoer maar vóór rendering, zoals camerabeweging, moeten op deze manier worden uitgevoerd. Voor strikte controle over de volgorde, gebruik BindToRenderStep() in plaats van PreRender.

  • Beheer fysieke toestanden zorgvuldig. PreSimulation gebeurt voor de fysica, terwijl PostSimulation gebeurt na de fysica. Daarom moet gameplay-logica die de fysica-toestand beïnvloedt, worden uitgevoerd in PreSimulation, zoals het instellen van de Velocity van onderdelen. In tegenstelling hiermee moet gameplay-logica die afhankelijk is van of reageert op de fysica-toestand, worden afgehandeld in PostSimulation, zoals het lezen van de Position van onderdelen om te detecteren wanneer ze gedefinieerde zones binnenkomen.

  • Motor6D-transformatiewijzigingen moeten worden gedaan tijdens het PreSimulation-evenement. Als je dat niet doet, zullen Animators wijzigingen overschrijven in het volgende frame. Zelfs zonder een Animator is PreSimulation het laatste Luau-evenement dat wordt geactiveerd voordat Motor6D.Transform wordt toegepast op de posities van onderdelen.

©2026 Roblox Corporation. Roblox, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.