Version: 6000.3
语言: 中文
刚体物理
配置刚体碰撞体(Rigidbody Colliders)

刚体物理简介

在现实世界的物理学中,刚体是指在物理力作用下不会变形或改变形状的任何物理体。刚体的任意两个给定点之间的距离在时间上保持恒定,无论施加在其上的外力如何。

为了模拟基于物理的行为,例如运动、重力、碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表
和关节,您需要在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
作为刚体。要配置游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
作为刚体,您可以将它们分配给刚体允许游戏对象受到模拟重力和其他力影响的组件。更多信息
请参阅术语表
元件。Rigidbody 组件在 API 中由Rigidbody类。

具有基于物理的运动的刚体游戏对象

在 Unity 中,Rigidbody 组件提供了一种基于物理的方式来控制游戏对象的移动和位置。您可以使用模拟的物理力和扭矩来移动游戏对象,而不是 Transform 属性,并让物理引擎模拟物理系统各个方面的系统,使物体能够正确加速并受到碰撞、重力和其他力的影响。更多信息
请参阅术语表
计算结果。

在大多数情况下,如果游戏对象具有 Rigidbody,则应使用 Rigidbody 属性来移动游戏对象,而不是 Transform 属性。Rigidbody 属性应用来自物理系统的力和扭矩,从而更改游戏对象的变换;如果直接更改 Transform,Unity 将无法正确计算物理模拟,并且您可能会看到不需要的行为。对于刚体尤其如此关节(Joints)允许刚体组件之间进行动态连接的物理组件,通常允许一定程度的移动,例如铰链。更多信息
请参阅术语表
.

Unity 全局处理基于物理的移动,而不是本地处理。当具有刚体的游戏对象通过基于物理的移动移动时,它独立于任何父级或子级游戏对象移动。具有刚体的子游戏对象仍使用其父游戏对象来定义其局部位置以进行初始化,但 Unity 会计算其在全局空间中基于物理的移动。

要通过脚本控制刚体,主要类是AddForce(向游戏对象添加力)和AddTorque(将扭矩应用于游戏对象)。

没有基于物理的移动的刚体游戏对象

在某些情况下,你可能希望物理系统检测游戏对象,但不控制它。例如,您可能想要碰撞体(Colliders)一种不可见的形状,用于处理对象的物理碰撞。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表
以检测游戏对象,但你打算通过其 Transform 控制该游戏对象的移动和位置。

Unity 中不基于物理的运动称为运动学运动。Rigidbody 组件具有 Is Kinematic 属性,启用后,会将附加的游戏对象定义为非基于物理的游戏对象,并将其从物理引擎的控制中删除。这允许你通过变换以运动学方式移动它,而Unity的物理模拟计算不会覆盖这些更改。

运动刚体可以将基于物理的力应用于基于物理的刚体游戏对象,但不会接收基于物理的力。例如,运动学刚体可以与具有基于物理的运动的刚体碰撞并“推动”,但具有基于物理的运动的刚体不能“推动”运动学刚体。

如果使用关节将运动学刚体附加到非运动学刚体,则关节无法施加力来移动运动学刚体。它只能移动非运动学刚体。但是,你仍然可以通过变换移动运动刚体,并且关节可以调整非运动体的姿势以满足关节限制。

刚体优化

当刚体的移动速度慢于睡眠阈值时(请参阅物理项目设置),Unity 会将刚体设置为“睡眠”,这意味着物理系统不会将其包含在物理计算中。当休眠的刚体收到碰撞或力时,Unity 会“唤醒”刚体并继续将其包含在物理计算中。

默认情况下,刚体组件的睡眠和唤醒会自动发生。 但是,您也可以通过脚本自行控制此行为,通过方法Rigidbody.SleepRigidbody.WakeUp.

刚体可能无法唤醒,以响应静态碰撞器(即没有刚体的碰撞器)的移动和碰撞,这些碰撞器通过变换位置而不是物理系统移动。如果物理系统无法再检测到静态碰撞器,则这种情况尤其可能发生。如果发生这种情况,您可以使用Rigidbody.WakeUp唤醒沉睡的刚体。

要了解有关刚体组件睡眠以及如何优化刚体组件的更多信息,请参阅使用刚体睡眠来提高物理性能

有关 PhysX 物理系统如何处理睡眠的更多信息,请参阅有关睡眠的 NVIDIA PhysX SDK 刚体动力学文档。

刚体物理
配置刚体碰撞体(Rigidbody Colliders)