在 Unity 中,当两个配置为碰撞的 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、摄像机、路径点等等。游戏对象的功能由附加在其上的组件定义。更多信息
参见 术语表 占据相同的物理空间时,就会发生碰撞。碰撞是大多数游戏以及许多交互式应用程序和模拟器的基础部分。
为了处理游戏对象之间的碰撞,Unity 使用碰撞器。碰撞器是 Unity 组件,用于定义游戏对象在物理碰撞时的形状。碰撞器是不可见的,并且不需要与游戏对象的网格形状相同。
有关如何向游戏对象添加组件的指南,请参见 使用组件。
每个 3D 碰撞器都有一个 2D 等效物。在 Unity 中,2D 和 3D 物理在不同的物理模拟系统上运行。有关 2D 物理碰撞器的指南,请参见 碰撞器 2D。
碰撞器的类型基于其游戏对象的碰撞器和 刚体允许游戏对象受到模拟重力和其它力的影响的组件。更多信息
参见 术语表 组件的配置。此配置决定了碰撞器如何表现以及它如何与其它碰撞器交互。
还有一种称为触发碰撞器的碰撞器子类型。触发碰撞器不会与其它碰撞器发生物理碰撞;相反,Unity 会在其它碰撞器穿过它们时调用一个函数。
触发碰撞器不会造成碰撞。相反,它们会检测穿过它们的其它碰撞器,并调用你可以用来启动事件的函数(参见 使用碰撞触发其它事件)。
要将碰撞器变为触发碰撞器,请在碰撞器组件上启用Is Trigger 属性。触发碰撞器不会与其它碰撞器发生碰撞;相反,其它碰撞器会穿过它。
为了使触发碰撞器正常工作,至少一个参与碰撞的游戏对象必须具有刚体。触发碰撞器可以是任何碰撞器类型(静态或刚体),但在大多数情况下,最佳实践是使触发碰撞器为 静态碰撞器,并将刚体添加到穿过触发器的游戏对象。如果多个游戏对象穿过一个触发器,则在每次碰撞对中至少有一个游戏对象必须具有刚体。
触发器可以是任何碰撞器形状(参见 碰撞器形状),并且可以是可见的或不可见的。要使触发器不可见,请将碰撞器添加到一个空的游戏对象。仅当允许其它游戏对象可见地穿过它时,才将触发器添加到一个可见的游戏对象。
为了游戏性和模拟,触发器可能需要进行一些调整,才能让它们对玩家来说感觉直观。例如,你可以尝试使触发碰撞器比其关联的可见游戏对象稍微大一些,以便它具有更大的半径。
有关不同碰撞器类型在碰撞时如何相互交互的信息,请参见 碰撞器类型之间的交互。
碰撞器组件以不同的形状配置提供。碰撞器主要有三种形状类型
基本碰撞器 是内置的简单形状,你可以将其附加到你的游戏对象,并缩放至大致相同的大小和形状。你还可以组合多个基本碰撞器形状来创建 复合碰撞器。网格碰撞器一个自由形式的碰撞器组件,它接受一个网格引用来定义其碰撞表面形状。更多信息
参见 术语表 准确地匹配游戏对象的 网格Unity 的主要图形基元。网格构成了你的 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。更多信息
参见 术语表 的形状。对于复杂形状来说,它们比基本碰撞器更准确,但需要更多计算资源。轮式碰撞器专门用于接地车辆的碰撞器。它具有内置的碰撞检测、轮式物理和基于滑动的轮胎摩擦模型。它可以用于轮子以外的对象,但它专为带有轮子的车辆而设计。更多信息
参见 术语表 是专门针对具有物理模拟轮子(例如,车辆)的游戏内物品的基于射线的碰撞器。它们具有内置的轮式物理,以及摩擦控制。
你可以控制碰撞器表面的摩擦力和弹性。当两个碰撞器相遇时,物理系统会使用每个表面的属性来计算它们之间的摩擦力和弹力。
有关更多信息,请参见 碰撞器表面。