物理

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Roblox 使用了一套刚体物理引擎。零件只要不是 anchored 就会受到物理力的影响,直到它们不再是。您可以使用附件和约束创建物理装配,并可以使用事件和碰撞过滤检测和控制对象之间的碰撞

装配件

一个 组装 由刚性约束或电机 (动画刚性节点) 连接的一个或多个 BaseParts 是一个或多个刚性连接。集合可以设置为初始线速度或角度速度,或者通过 约束 可以影响其行为。

A light blue cube against a dark blue background that represents an assembly of 1 part.
1 装配; 1 部分
A humanoid character model against a dark blue background that represents an assembly of 18 parts.
1 装配;18 零件
A pirate that represents an assemble of 179 parts.
1 装配;179 零件

限制

非锚定装配会对重力和碰撞的力进行反应,但物理力也可以通过 机械约束传动约束 来应用。

机械约束

机械约束包括熟悉的对象,例如铰链、弹簧和绳索,可用于建造机制。每个都受到 机械约束 的覆盖。

移动约束

移动约束可以对一个或多个装配施加力或扭矩以进行移动。每个约束都列在 移动约束 中。

冲突

当两个 BaseParts 在 3D 世界中触摸或停止触摸时,会自动发生碰撞事件。您可以通过 检测 这些碰撞通过 TouchedTouchEnded 事件,无论哪一方的 CanCollide 属性值是否相同。

通过碰撞过滤技术,例如碰撞组或零件对零件过滤,您可以控制哪些物理装配会与其他装配碰撞。

请参阅碰撞获取更多关于检测和过滤碰撞的详细信息。

网络所有权

为了支持复杂的物理机制,同时也为玩家提供顺滑且响应的体验,Roblox 物理引擎使用分布式物理系统,在服务器和所有连接的客户端之间分配计算。在这个系统中,引擎将物理模拟的网络所有权分配给客户端或服务器,以分割物理计算的工作。请参阅网络所有权获取更多详情。

适应性时间步骤

引擎通过自动将装配分配到三种模拟速率之一来强调最佳性能。对于包含坦克等复杂机制的场景,您可以通过设置固定时间步来提高稳定性。请参阅适应性时间步骤获取更多信息。

睡眠系统

当组装不移动或加速时,Roblox 物理引擎会自动停止模拟组装,从而提高性能。请参阅睡眠系统获取睡眠系统的详细描述。