Agendadorde tarefas

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O programador de tarefas coordena as tarefas concluídas a cada quadro enquanto o jogo é executado, mesmo quando o jogo é pausado.Essas tarefas incluem detectar a entrada do jogador, animar personagens, atualizar a simulação de física e retomar os scripts em um estado task.wait() .

Embora possam existir várias tarefas em execução, o planejador de tarefas pode potencialmente ser sobrecarregado, especialmente nas seguintes situações:

  • Usando um personagem customizado ou esquema de entrada.
  • Animar peças você mesmo (em vez de usar um Animator ).
  • Dependendo fortemente de física precisa.
  • Replicando objetos regularmente.

Esquadros

Um quadro é uma unidade de lógica de jogo onde o trabalho é feito.Cada quadro deve executar tarefas de forma eficiente, levando a mais quadros por segundo e uma experiência de jogador mais suave.

Executar Serviço

A maneira mais direta de adicionar tarefas de jogo frame-by-frame é através dos seguintes membros de RunService :

Prioridade do agendador

O agendador de tarefas categoriza e conclui tarefas na seguinte ordem.Algumas tarefas podem não executar trabalho em um quadro, enquanto outras podem ser executadas várias vezes.

Melhores práticas

Para construir jogos performáticos com eficiência em mente, note o seguindo:

  • Não conecte/vincule funções ao passo de renderização, a menos que seja absolutamente necessário.: Somente tarefas que devem ser feitas após a entrada, mas antes de renderizar devem ser feitas dessa maneira, como o movimento da câmera.Para controle rigoroso sobre a ordem, use BindToRenderStep() em vez de PreRender.

  • Gerencie estados físicos com cuidado.: PreSimulation acontece antes da física, enquanto PostSimulation acontece depois da física.Portanto, a lógica de jogabilidade que afeta o estado de física deve ser feita em PreSimulation, como definir o Velocity das peças.Em contraste, a lógica de jogabilidade que depende ou reage ao estado da física deve ser tratada em PostSimulation, como ler o Position das peças para detectar quando elas entram em zonas definidas.

  • As alterações de transformação do Motor6D devem ser feitas no evento de PreSimulação.: Se você não fizer isso, Animators substituirá as alterações na próxima frame.Mesmo sem um Animator , PreSimulation é o último evento Luau disparado antes de Motor6D.Transform ser aplicado às posições das partes.