Version: Unity 6.0 (6000.0)
语言 : 中文
复合碰撞体
创建复合碰撞体

复合碰撞体简介

复合碰撞体是同一刚体游戏对象上的碰撞体集合。

复合碰撞体的整体行为类似于单个刚体碰撞体。当需要精确的凹面形状碰撞体时,或者当模型计算量太高而无法用网格碰撞体进行模拟时,复合碰撞体将非常有用。

复合碰撞体的构造

复合碰撞体由以下元素组成:

  • 具有刚体的父游戏对象
  • 含有碰撞体的空子游戏对象

复合碰撞体只能有一个刚体,该刚体应位于根游戏对象上。

有关如何创建复合碰撞体的更多信息,请参阅创建复合碰撞体

枪支模型的复合碰撞体设置。五个碰撞体可构成此模型的近似形状。
枪支模型的复合碰撞体设置。五个碰撞体可构成此模型的近似形状。

在上图中,游戏对象枪支模型有一个附加到父游戏对象的刚体和多个子游戏对象,每个子游戏对象有一个原始碰撞体。当刚体父对象在物理力作用下移动时,子碰撞体会随之移动。原始碰撞体可与环境中的其他碰撞体发生碰撞,父刚体会根据这些碰撞改变其移动方式。

与包含一个刚体和多个碰撞体的单个游戏对象相比,此配置具有更大的灵活性。当每个碰撞体位于不同的游戏对象上时,可以单独修改每个碰撞体的变换 (Transform) 组件。但是,在重新定位碰撞体时,应监控刚体的行为。更改碰撞体的位置和比例可能会改变刚体的质心,如果在运行时连续更改多个帧,则可能会导致一些意外行为。如果发生这种情况,可使用 rigidbody.centerOfMass 手动设置质心。

复合碰撞体的工作原理

将多个碰撞体附加到同一刚体时,物理系统会将整个集合视为单个刚体碰撞体。碰撞体类型(动态或运动)由刚体配置确定。

当复合碰撞体接触到另一个碰撞体时,Unity 会为复合体中的每个碰撞体分别记录碰撞。因此,应尝试排列好碰撞体,以便在运行时仅获得所需的碰撞对,或使用碰撞体标签来确定由特定碰撞体引起的行为。

复合碰撞体的优点和局限性

在大多数情况下,复合碰撞体提供的解决方案与网格碰撞体类似:其主要目的是为形状复杂的物体提供准确的碰撞。在考虑复合碰撞体的优点和局限性时,通常会将其与网格碰撞体进行比较。

复合碰撞体的主要优点是:

  • 可以获得复杂凹面形状的碰撞效果。网格碰撞体更精确,但它们不支持凹面形状之间的精确碰撞。
  • 在有些情况下,复合碰撞体比网格碰撞体的计算需求更低。对于只需要几个碰撞体就能得到近似形状的简单形状,或者对于不需要太精确的形状,通常就是这样。例如,网格碰撞体可能会生成数百个多边形来精确匹配复杂的形状,但使用原始碰撞体来获得近似形状可能只需要很少的多边形。

但是,复合碰撞体也有一些明显的局限性:

  • 复合碰撞体没有那么精确。在大多数情况下,可以用较简单的形状来构建复合碰撞体,这样可以获得物体的近似形状,但无法做到完全匹配。
  • 复合碰撞体的生成需要更长的时间。复合碰撞体需要手动排列每个碰撞体,这会花费更长的时间。
  • 在有些情况下,复合碰撞体可能比网格碰撞体计算需求更高。对于需要大量碰撞体才能得到近似形状的复杂形状,通常就是这样。一个网格碰撞体可能比多个原始碰撞体更高效。

此决策总是因项目而异,因此应该测试每种配置,并使用物理性能分析器 (Physics Profiler) 来了解碰撞体设置的效率。

复合碰撞体
创建复合碰撞体
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961