跳到主要内容

物理

大多数游戏都包含某种物理效果。玩家期待物体受重力下落,相互碰撞而非穿过,以及碰撞时播放声音等。

物理引擎尝试在虚拟游戏世界中重现自然规律,让对象以符合预期、可预测的方式运动。

物理约束

PlayCanvas 物理基于 ammo.js,即开源 Bullet 引擎的 WebAssembly 移植。通过组件使用:rigidbody 决定运动方式,collision 提供形状,Alpha 阶段的 joint 在刚体间建立约束。无论使用编辑器、直接调用引擎、PlayCanvas React 或 Web Components,都使用具有相同属性的组件。本节各页先解释概念,再介绍各开发方式的用法。

本节包括:

  • 快速入门:启用物理、重力、单位、模拟运行方式,以及暂停和步进。
  • 刚体:静态、动态和运动学类型,属性、休眠、移动与缩放。
  • 碰撞形状:基本几何体、网格和复合形状,以及偏移和缩放。
  • 移动刚体:力、冲量、扭矩、速度和运动学运动。
  • 碰撞事件:响应刚体接触。
  • 触发体积:检测刚体进入和离开区域。
  • 射线检测:沿直线查询场景,实现拾取和探测。
  • 关节:铰链、滑块、球关节、弹簧和可断裂焊接。
  • 直接调用 ammo.js:访问组件未公开的 Bullet 功能。
  • ammo.js 替代方案:其他物理引擎及集成思路。

另请参阅​