跳到主要内容

<Rigidbody/>

Rigidbody 提供质量、速度和摩擦,使实体响应重力、力、力矩及其他全局物理行为。

基础见物理,React 用法见指南。

入门​

提示

安装 ammo.js 依赖:npm i sync-ammo,并启用 Application usePhysics。

根 Application 的 usePhysics 会启用物理系统,使实体参与模拟。

详情见 React 物理。

用法​

为同一实体添加 Rigidbody 和 Collision,后者定义形状。

<Application usePhysics>
<Entity>
<Rigidbody type="box" />
</Entity>
</Application>

详见 RigidBodyComponent。

属性​

名称类型与说明默认值
type?
"dynamic" | "kinematic" | "static"
设置决定模拟方式的刚体类型。
"static"
angularDamping?
number
设置或获取刚体角速度随时间衰减的速率。
-
angularFactor?
[number, number, number]
设置或获取各轴角运动缩放因子,仅用于 BODYTYPE_DYNAMIC。默认各轴为 1,可自由旋转。更新物理刚体时使用 setter。
-
angularVelocity?
[number, number, number]
设置或获取刚体绕各世界轴的旋转速度,仅用于 BODYTYPE_DYNAMIC。更新物理刚体时使用 setter。
-
friction?
number
设置或获取两个刚体接触时的摩擦系数,越高摩擦越大,范围 0 到 1,默认 0.5。
-
gravityScale?
number
设置或获取此刚体对世界重力(RigidBodyComponentSystem#gravity)的倍率,仅用于 BODYTYPE_DYNAMIC,默认 1。0 忽略重力,负数使其上升。若要独立重力方向,设为 0 并每帧用 applyForce 自行施力。
-
group?
number
设置或获取刚体所属碰撞组,与 mask 配合控制碰撞。默认动态为 1、静态为 2、运动学为 4。设置 RigidBodyComponent#type 会重置组为新类型默认值,因此应先设置类型,再设置组。
-
linearDamping?
number
设置或获取刚体线速度随时间衰减的速率,默认 0。
-
linearFactor?
[number, number, number]
设置或获取各轴线性运动缩放因子,仅用于 BODYTYPE_DYNAMIC。默认各轴为 1,可自由移动。更新物理刚体时使用 setter。
-
linearVelocity?
[number, number, number]
设置或获取刚体在指定方向的速度,仅用于 BODYTYPE_DYNAMIC。更新物理刚体时使用 setter。
-
mask?
number
设置或获取刚体可碰撞组的 16 位掩码,低 8 位保留给引擎。静态默认 65533,与其他静态刚体之外的对象碰撞;动态和运动学默认 65535,与全部对象碰撞。设置 type 会重置掩码,因此应在类型之后设置 mask。
-
mass?
number
设置或获取质量,仅对 BODYTYPE_DYNAMIC 有效,其他类型具有无限质量。默认 1。
-
restitution?
number
设置或获取恢复系数,控制碰撞损失的能量。碰撞双方的恢复系数相乘,乘积 0 表示能量全部损失,1 表示无损失。范围 0 到 1,默认 0。
-
rollingFriction?
number
设置或获取垂直于接触点的扭转摩擦,默认 0。
-
system?
ComponentSystem
创建此组件的 ComponentSystem。
-
entity?
Entity
此组件挂载的 Entity。
-
enabled?
boolean
设置或获取组件的启用状态。
-