静态碰撞体
初级 设计师
Warning
Bullet Physics is being phased out. We no longer plan to support or expand its features as our focus shifts to Bepu Physics. We recommend transitioning to Bepu Physics for access to the latest updates and ongoing improvements.
静态碰撞体(Static Collider) 不会受到重力和碰撞等力的作用而移动,但其他物理对象可以撞到它们。典型的静态碰撞体是坚固且不可移动的物体,如墙壁、地面、大石块等。

添加静态碰撞体
选择要设为静态碰撞体的实体。
在 Property Grid 中,点击 Add component 并选择 Static Collider。

设置碰撞体形状以匹配实体的形状。为此,在 Property Grid 中展开 Static Collider component 以查看其属性。
在 Collider Shapes 旁边,点击
(添加)并选择你想要的形状。
静态碰撞体属性
你可以在 Property Grid 中调整静态碰撞体的属性。

| 属性 | 描述 |
|---|---|
| Collision Group | 设置对象所属的碰撞组。 |
| Can Collide With | 设置对象与哪些组发生碰撞。 |
| Collision Events | 启用后,对象会报告可在脚本中使用的碰撞事件。它对物理没有影响。如果没有脚本使用该对象的碰撞事件,请禁用此选项以节省 CPU。 |
| Can Sleep | 启用后,物理引擎在对象不移动时不处理它们。这可以节省 CPU。 |
| Restitution | 设置碰撞后动能损失或增加的量。典型值在 0 到 1 之间。如果碰撞实体的 restitution(恢复系数)属性为 0,实体将在碰撞瞬间失去所有能量并停止移动。如果 restitution 为 1,它们不会失去能量,并以碰撞时的速度反弹。使用它来改变刚体的"弹性"。 |
| Friction | 设置表面摩擦力。 |
| Rolling Friction | 设置滚动摩擦力。 |
| CCD Motion Threshold | 设置连续碰撞检测(CCD)接管的速度。CCD 防止快速移动的实体(如子弹)错误地穿过其他实体。 |
| CCD Swept Sphere Radius | 设置连续碰撞检测期间包含两个物理帧之间位置的包围球半径。 |
| Is Trigger | 切换静态碰撞体是否为触发器。 |
在运行时移动静态碰撞体
如果你需要在运行时移动静态碰撞体,可以用脚本来完成:
PhysicsComponent.Entity.Transform.Position += PhysicsComponent.Entity.Transform.Position + Vector3.UnitX;
PhysicsComponent.Entity.Transform.UpdateWorldMatrix();
PhysicsComponent.UpdatePhysicsTransformation();