Il programmatore di compiti coordina i compiti eseguiti ogni frame mentre il gioco viene eseguito, anche quando il gioco è in pausa.Queste attività includono il rilevamento dell'input del giocatore, l'animazione dei personaggi, l'aggiornamento della simulazione fisica e il riavvio degli script in uno stato task.wait() .
Mentre ci possono essere più task in esecuzione, il programmatore di task può essere potenzialmente sovraccarico, in particolare nelle seguenti situazioni:
- Utilizzando un rig di caratteri personalizzato o uno schema di input.
- Animare le parti da solo (invece di utilizzare un Animator ).
- Dipende fortemente dalla fisica precisa.
- Replicare gli oggetti regolarmente.
Quadri
Un frame è un'unità di logica di gioco dove viene fatto il lavoro .Ogni frame dovrebbe eseguire le attività in modo efficiente, portando a più quadri al secondo e a un'esperienza del giocatore più liscia.
Esegui servizio
Il modo più diretto per aggiungere compiti di gioco frame-by-frame è attraverso i seguenti membri di RunService :
Priorità del programmatore
Il programmatore delle attività categorizza e completa le attività nell'ordine seguente.Alcune attività potrebbero non eseguire lavori in un frame, mentre altre possono essere eseguite più volte.

Migliori pratiche
Per costruire giochi performanti con efficienza in mente, nota quanto Seguendo:
Non connettere/legare le funzioni al passo di rendering a meno che non sia assolutamente necessario.: Solo le attività che devono essere eseguite dopo l'input ma prima del rendering devono essere eseguite in questo modo, come il movimento della fotocamera.Per il controllo rigoroso dell'ordine, usa BindToRenderStep() invece di PreRender .
Gestisci attentamente gli stati fisici.: PreSimulation accade prima della fisica, mentre PostSimulation accade dopo la fisica.Pertanto, la logica di gioco che influisce sullo stato della fisica dovrebbe essere eseguita in PreSimulation , come impostare il Velocity delle parti.In contrasto, la logica di gioco che si basa o reagisce allo stato della fisica dovrebbe essere gestita in PostSimulation, come la lettura del Position delle parti per rilevare quando entrano in zone definite.
Le modifiche della trasformazione di Motor6D devono essere eseguite sull'evento PreSimulation.: Se non lo fai, Animators sovrascriverà le modifiche sul prossimo frame.Anche senza un Animator , PreSimulation è l'ultimo evento Luau sparato prima che Motor6D.Transform venga applicato alle posizioni di parti.