El planificador de tareas coordina las tareas completadas en cada marco a medida que el juego se ejecuta, incluso cuando el juego está en pausa. Estas tareas incluyen la detección de la entrada del jugador, la animación de los personajes, la actualización de la simulación de física y la reanudación de los scripts en un estado de wait() .
Aunque puede haber múltiples tareas en ejecución, el programador de tareas puede potencialmente estar sobrecargado, especialmente en las siguientes situaciones:
- Usando un personaje personalizado o un esquema de entrada.
- Animando partes por ti mismo (en lugar de usar un Animator )).
- Depende mucho de la física precisa.
- Replicando objetos con regularidad.
Marcos
Un marco es una unidad de la lógica del juego donde se realiza el trabajo . Cada marco debe realizar tareas de manera eficiente, lo que conduce a más marcos por segundo y una experiencia de jugador más suave.
Ejecutar servicio
La forma más directa de agregar tareas de juego de marco a marco es a través de los siguientes miembros de RunService :
Prioridad del cronometrador
El programador de tareas categoriza y completa tareas en el siguiente orden. Algunas tareas pueden no realizar trabajo en un marco, mientras que otras pueden ejecutarse varias veces.
Mejores Prácticas
Para construir juegos efectivos con eficiencia en mente, tenga en cuenta lo siguiendo:
No conecte/vincule funciones a la etapa de renderizado a menos que sea absolutamente necesario. Solo las tareas que deben hacerse después de la entrada pero antes de renderizar se deben hacer de esta manera, como el movimiento de la cámara. Para un control estricto sobre el orden, use Class.RunService:BindToRenderStep()|BindToRenderStep() en lugar de Class.RunService.PreRender|PreRender .
Minimice la cantidad de scripts de espera. Evite usar while wait() do end o while true do wait() finalizar