Agendador de Tarefas

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

O Calendário de Tarefas coordena as tarefas concluídas em cada quadro de tempo, mesmo quando o jogo está em pausa. Essas tarefas incluem detectar a entrada do jogador, animação de personagens, atualização de simulação de física e retomar scripts em um estado de wait().

Embora possa haver várias tarefas em execução, o cronometrista de tarefas pode ser sobrecarregado, especialmente nas seguintes situações:

  • Usando uma rede de caracteres personalizada ou esquema de entrada.
  • Animando peças você mesmo (em vez de usar um Animator ).
  • Dependendo fortemente de física precisa.
  • Replicando objetos regularmente.

Quadros

Uma janela é uma unidade de lógica de jogo onde o trabalho é feito. Cada janela deve executar tarefas de forma eficiente, resultando em mais janela por segundo e uma experiência de jogador mais suave.

Executar Serviço

A maneira mais direta de adicionar tarefas de jogo de quadro a quadro é através dos seguintes membros de RunService :

Prioridade do Schedule

O gerenciador de tarefas classifica e conclui tarefas na seguinte ordem. Algumas tarefas podem não executar trabalho em uma janela, enquanto outras podem ser executadas várias vezes.

Melhores Práticas

Para construir jogos eficientes com performance em mente, observe 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 depois da entrada, mas antes do renderização, devem ser feitas desta maneira, como o movimento da câmera. Para controle rigoroso sobre a ordem, use Class.RunService:BindToRenderStep()|BindToRenderStep() em vez de Class.RunService.PreRender|PreRender

  • Minimize the amount of waiting scripts. Evite usar while wait() do end ou while true do wait() terminar/parar/sair

  • As transformações do motor6D devem ser feitas no evento PreSimulation. Se você não, Animators substituirá as alterações no próximo quadro. Mesmo sem um Animator, 0> Class.RunService.PreSimulation|PreSimulation0>