Il 计划任务 coordina le attività eseguite in ogni frame mentre il gioco viene eseguito, anche quando il gioco è in pausa. Questi attività includono la rilevazione dell'input del giocatore, l'animazione dei personaggi, l'aggiornamento della simulazione fisica e il riavvio degli script in uno stato wait() .
Mentre potrebbero essere eseguiti più compiti, il programmatore di compiti può essere potenzialmente sovraccaricato, specialmente nelle seguenti situazioni:
- Usa un rig personaggio personalizzato o un protocollo di input.
- Animazione delle parti da te stesso (invece di usare un Animator ).
- Dipende molto dalla fisica precisa.
- Replicare oggetti regolarmente.
Frame
Un Frame è un'unità di game logic in cui viene eseguito il lavoro. Ogni Frame dovrebbe eseguire compiti in modo efficiente, che conducono a più Frame per secondo e a un'esperienza di giocatore più liscia.
RunService
Il modo più diretto per aggiungere compiti di gioco frame-by-frame è attraverso i seguenti membri di RunService :
Priorità della Scheda
Il programmatore delle attività categorizza e completa le attività nell'ordine seguente. Alcune attività potrebbero non eseguire il lavoro in un frame, mentre altre potrebbero essere eseguite più volte.
Migliori Pratiche
Per creare giochi performanti con efficienza in mente, nota quanto Seguendo:
Non connettere/legare funzioni alla fase di rendering a meno che non sia assolutamente necessario. Solo le attività che devono essere eseguite dopo l'input ma prima di renderizzare devono essere eseguite in questo modo, come la telecamera. Per il controllo rigido dell'ordine, usa Class.RunService:BindToRenderStep()|BindToRenderStep() invece di Class.RunService.PreRender|PreRender .
Minimizza la quantità di script di attesa. Evita di utilizzare while wait() do end o while true do wait