任务调度器 在游戏运行时为每个框架执行完成的任务,即使游戏暂停。这些任务包括检测玩家输入、动画角色、更新物理模拟和在 task.wait() 状态下恢复脚本。
虽然可能有多个任务运行,但任务调度器可能会过载,尤其是在以下情况下:
- 使用自定义角色装备或输入方案。
- 自己动画零件(而不是使用 Animator )。
- 对精确的物理学依赖很大。
- 定期复制对象。
框架
一个 框架 是游戏逻辑中完成工作的单位。每个框应高效执行任务,导致每秒更多 帧 和更平滑的玩家体验。
运行服务
添加帧对帧游戏任务的最直接方法是通过以下成员 RunService :
调度员优先级
任务调度器按照以下顺序分类并完成任务。一些任务可能在框架中无法执行工作,而其他任务可能多次运行。

最佳实践
要构建高效的游戏,请注意以下几点:
除非必要,否则不要将函数连接/绑定到渲染步骤。: 只有在输入后但 antes de renderizar 渲染之前必须执行的任务才能这样执行,例如相机移动。对订单进行严格控制时,请使用 BindToRenderStep() 而不是 PreRender 。
仔细管理物理状态。: PreSimulation 发生在 物理之前 ,而 PostSimulation 发生在 物理之后 。因此,影响物理状态的游戏逻辑应在 PreSimulation 中执行,例如设置零件的 Velocity。相反,依赖物理状态或反应于物理状态的游戏逻辑应在 PostSimulation 中处理,例如阅读零件的 Position 以检测它们是否进入定义区域。
Motor6D 变形更改应在预模拟事件上进行。: 如果你没有,Animators 将覆盖下一帧上的更改。即使没有 Animator , PreSimulation 是在 Motor6D.Transform 应用到零件位置之前发射的最后一个 Luau 事件。