Roblox 使用刚体物理引擎。 BaseParts 受到物理力量的影响,只要它们没有被设置为 Anchored。你可以通过附件和约束创建物理 组件,并可以使用事件和碰撞过滤来检测和控制对象之间的 碰撞。
组件
一个 组件 是一个或多个通过刚性约束或电动机(动画刚性关节)连接的 BaseParts。组件可以设置初始线性或角速度,或者其行为可以通过 约束 进行影响。



约束
非锚固的组件会对重力和碰撞产生反应,但物理力量也可以通过 机械约束 或 移动约束 来施加和模拟。
机械约束包括熟悉的物体,如 铰链、弹簧 和 绳索,可以用来构建机制。每种约束在 机械约束 指南中都有摘要。
碰撞
当两个 BaseParts 在 3D 世界中接触或停止接触时,碰撞事件会自动发生。你可以通过 Touched 和 TouchEnded 事件来 检测 这些碰撞,这些事件会在任一部件的 CanCollide 属性值不管的情况下发生。
通过 碰撞过滤 技术,如碰撞组或部件间过滤,你可以控制哪些物理组件与其他组件碰撞。
有关检测和过滤碰撞的更多详细信息,请参阅 碰撞 指南。
网络所有权
为了支持复杂的物理机制,同时也希望为玩家提供流畅和响应迅速的体验,Roblox 物理引擎利用了 分布式物理 系统,其中计算在服务器和所有连接的客户端之间分配。在此系统中,引擎将物理模拟的 BaseParts 的 网络所有权 分配给客户端或服务器,以分配计算物理的工作量。有关更多详细信息,请参阅 网络所有权 指南。
自适应时间步长
该引擎通过自动将组件分配给三种模拟速率之一来强调最佳性能。对于包含复杂机制(如坦克)的场景,可以通过设置固定时间步长来提高稳定性。有关更多信息,请参阅 自适应时间步长 指南。
睡眠系统
当组件不移动或加速时,Roblox 物理引擎通过自动停止模拟该组件来提高性能。有关详细信息,请参阅 睡眠系统 指南。