物理
大多数游戏都包含某种物理效果。玩家期待物体受重力下落,相互碰撞而非穿过,以及碰撞时播放声音等。
物理引擎尝试在虚拟游戏世界中重现自然规律,让对象以符合预期、可预测的方式运动。

PlayCanvas 物理基于 ammo.js,即开源 Bullet 引擎的 WebAssembly 移植。通过组件使用:rigidbody 决定运动方式,collision 提供形状,Alpha 阶段的 joint 在刚体间建立约束。无论使用编辑器、直接调用引擎、PlayCanvas React 或 Web Components,都使用具有相同属性的组件。本节各页先解释概念,再介绍各开发方式的用法。
本节包括:
- 快速入门:启用物理、重力、单位、模拟运行方式,以及暂停和步进。
- 刚体:静态、动态和运动学类型,属性、休眠、移动与缩放。
- 碰撞形状:基本几何体、网格和复合形状,以及偏移和缩放。
- 移动刚体:力、冲量、扭矩、速度和运动学运动。
- 碰撞事件:响应刚体接触。
- 触发体积:检测刚体进入和离开区域。
- 射线检测:沿直线查询场景,实现拾取和探测。
- 关节:铰链、滑块、球关节、弹簧和可断裂焊接。
- 直接调用 ammo.js:访问组件未公开的 Bullet 功能。
- ammo.js 替代方案:其他物理引擎及集成思路。
另请参阅
- 碰撞与触发器:在编辑器中构建完整物理场景的教程。
- 通过代码创建刚体:从脚本生成物理对象的教程。
- 车辆物理:驾驶射线检测车辆的教程。
- PlayCanvas React 物理:React 中启用和使用物理。
<pc-rigid-body>:Web Components 刚体参考。