# 简介

物理引擎(Physics Engine)用于计算3D场景中,物体与场景之间、物体与角色之间、物体与物体之间的运动交互和动力学特性。在物理引擎的支持下,3D场景中的物体可以具有质量、可以受到重力作用落在地面上、可以和别的物体发生碰撞、可以反应用户施加的推力、可以因为压力而变形等等。简而言之,物理引擎用来创建虚拟的物理环境,并在其中运行来自物理世界的规则。

# 碰撞外形

碰撞外形(Collision Shape)用于碰撞检测,所有的碰撞体、刚体、柔体必须添加至少一种碰撞外形才能够进行碰撞检测。碰撞外形可以是一些简单形状也可以是一些复杂的形状,开发时需要根据实际情况合理选择碰撞外形。

# 碰撞体

碰撞体(Collision Body)可以理解为一个“幽灵”对象,它与碰撞体、刚体、柔体碰撞时会发生碰撞检测但不会对碰撞结果进行物理反馈而是直接穿过。因此,碰撞体用于实现触发器,检测任何(或特定)物体是否位于碰撞体的碰撞外形内部。例如,我们可以为电子围栏添加一个碰撞体并指定一个碰撞外形,当有人员入侵到电子围栏内部时触发报警事件。碰撞体分为静态动态两种类型。

注意

静态碰撞体仅适用于Lite物理引擎,且静态碰撞器只能与动态碰撞器发生碰撞。

# 刚体

刚体(Rigid Body)用于实现碰撞器,当它与刚体或柔体碰撞时会发生碰撞检测并会对碰撞结果进行物理反馈(例如,停止运动或反弹)。刚体分为静态动态两种类型:

🌏 静态刚体,无法动态改变位置和旋转且碰撞结果也无法对其施加物理反馈。例如,地面、房子、不可移动的障碍物等。

🌏 动态刚体,可以通过施加外力改变其位置和旋转且碰撞结果的物理反馈也会改变它的方位和形状。

# 柔体

柔体(Soft Body)与刚体相似,只是它不是刚性的而是柔性的,这意味着柔体的外形是可以改变的。例如,布料、绳索、气囊等。

# 约束

约束(Constraint)用于限制两个刚体的相对运动或限制一个刚体相对于物理世界的运动,约束通常也被称为关节(Joint)。常见的约束类型如下所示:

🌏 点到点(Point to Point) 约束可限制平移,以便两个刚体之间的枢轴点在世界空间中相匹配。可以使用“点到点”约束创建一些效果(如链条)或将对象固定在一起。

🌏 铰链(Hinge) 约束可限制平移和其他两个角度自由度,因此实体仅可以绕一个轴旋转。铰链轴由约束的 Z 轴定义。此约束可用于表示绕轴旋转的门或轮子。用户可以为铰链指定限制和马达设置。

🌏 滑块(Slider) 约束允许刚体绕一个轴旋转并沿同一轴平移。滑动轴由约束的 Z 轴定义。

🌏 椎体扭曲(Cone-Twist) 约束这是一个特殊的点到点约束,可添加圆锥体和扭曲轴限制。X 轴用作扭曲轴。

Last Updated: 6/18/2024, 1:38:19 PM