在现实世界的物理学中,摩擦力是阻碍两个接触表面之间运动的力。例如,冰的表面摩擦力低,物体可以轻松地在冰面上滑动。橡胶的表面摩擦力高,可以防止物体在其表面上滑动。
在 PhysX 系统中,您可以控制两种类型的摩擦力
静摩擦力适用于碰撞体用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格完全相同形状 - 粗略的近似通常更有效,并且在游戏玩法中难以区分。 更多信息
参见 术语表静止时。较高的静摩擦力会阻碍碰撞体在与另一个碰撞体接触时开始移动。动摩擦力物理材质属性,定义刚体运动时的摩擦力。值越低,摩擦力越小,因此值为零表示在冰面上滑动。 更多信息
参见 术语表适用于碰撞体移动时。较高的动摩擦力会阻碍碰撞体在与另一个碰撞体接触时的移动速度。
当您需要堆叠物体时,静摩擦力在物理模拟中尤其相关。例如,如果您将一个低摩擦力的物体放在另一个物体上面(例如,一块冰放在另一块冰上),它们之间的低摩擦力可能会导致上面的物体移动,即使下面的物体是静止的。
PhysX 计算出的接触表面大于单个点(例如,两个箱子彼此叠放)具有多个接触点。这反过来会使摩擦力成倍增加。如果发生这种情况,您需要调整摩擦力值以正确缩放结果 - 例如,如果有两个接触点,您应该将摩擦力值减半。
Unity 中的默认摩擦力为 0.6。此值可在大多数项目中模拟现实世界的摩擦力。
您可以选择 PhysX 用于模拟碰撞体之间摩擦力的计算类型。为此,请转到物理设置(编辑 > 项目设置 > 物理)并使用摩擦力类型属性。有关每种摩擦力类型的更多信息,请参阅物理设置文档。
摩擦力类型的选择始终是为了平衡准确性和性能;更高的准确性总是需要更多处理时间。有些项目需要极其精确的摩擦力,而其他项目则更关注性能优化。选择最适合您项目重点的摩擦力类型。默认的摩擦力类型为面片摩擦力。