Version: 6000.3
语言: 中文
碰撞体类型和性能
使用刚体睡眠来提高物理性能

配置网格体碰撞体组件烘焙选项以进行优化

通过配置烘焙选项来优化物理计算网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表
碰撞体(Collider) 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表
组件。

当您选择游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
使用网格碰撞体(Mesh Collider自由形式的碰撞器组件,它接受网格体引用来定义其碰撞表面形状。更多信息
请参阅术语表
组件中,你可以修改检查器一个Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
窗。设置此属性以定义如何处理此网格体以进行物理计算。烘焙选项会影响烘焙时间和运行时性能。您可以选择多个可用选项来组合它们。

为组件设置 烘焙选项(Cooking Options) 属性时,可以定义如何烘焙该特定网格体。要了解有关如何为整个模拟设置烘焙网格体选项的更多信息,请参阅为网格体碰撞器准备网格体

要了解网格碰撞器组件可用的属性,请参阅网格碰撞器组件参考

烹饪选项有:

  • :禁用所有烹饪选项并提供标准烹饪行为。默认情况下,None 处于禁用状态。当烘焙发生在运行时时,例如对于尚未预烘焙的程序生成网格体,使用 None 会设置最基本的烘焙过程。
  • 一切:启用所有烹饪选项。默认情况下,此功能处于启用状态。
  • 烘焙以加快模拟速度:在烘焙过程中执行额外处理以优化网格体以加快速度碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
    请参阅术语表
    运行时检测。当烘焙在运行时发生时,启用此功能可以显著增加初始烘焙时间(CPU峰值),但它通常会在物理模拟本身期间带来更好的性能,特别是对于经常涉及碰撞的复杂网格体。这是一个权衡:更长的加载和设置时间以获得更流畅的游戏体验。
  • 启用网格清理:清理网格几何体中的缺陷,例如微小的三角形或几乎位于同一位置的顶点。启用 启用网格体清理(Enable Mesh Cleaning) 会增加运行时烘焙时间。然而,更干净的网格可以带来更稳定和坚固的碰撞检测Unity 执行的自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与任何其他碰撞器接触。更多信息
    请参阅术语表
    在运行时,可能会防止物理故障或意外行为,否则这些故障或意外行为将花费更多的 CPU 周期来解决。此选项对于已生成或导入有缺陷的网格体很有用。
  • 焊接共置顶点(Weld Colocated Vertices) :与启用网格体清理(Enable Mesh Cleaning) 类似,焊接共置顶点合并彼此非常接近的顶点。虽然启用 焊接共置顶点(Weld Colocated Vertices) 会增加运行时烘焙时间,但它可以通过简化网格体和减少物理系统需要处理碰撞检查的顶点数量来提高运行时性能。
  • 使用快速中相:使用更快但可能不太精确的中相算法进行碰撞检测。启用此功能可以通过加快碰撞查询过程来提高某些类型网格体的性能。但是,它可能会稍微降低碰撞检测的精度,这可能会影响高度敏感的物理交互。

配置网格体碰撞体烘焙选项的推荐最佳实践是:

  • 对于网格体碰撞体组件,始终使用相对低多边形、封闭(水密)和干净的网格体,没有退化三角形或重叠顶点。这种方法减少了烘焙时间并提高了运行时性能。
  • 使用 Unity Profiler 确定运行时是否发生意外的网格烘焙。

一般情况下,使用网格体碰撞体组件的推荐性能提示是:

  • 始终将基本碰撞器(球体、胶囊体、盒体)用于动态(移动)或频繁更新的对象。
  • 仅将非凸面网格体碰撞器组件用于需要高保真碰撞的静态环境几何体。
  • 对于需要复杂形状的动态对象,与非凸面碰撞器相比,首选凸面网格体碰撞器组件或复合碰撞体。
  • 最大限度地降低用于网格碰撞器组件的网格的复杂性。

要评估网格体碰撞体性能,请执行以下作:

  • 配置文件:使用 Unity Profiler。专注于窄相位处理和物理求解时间,当具有网格体碰撞器的对象主动碰撞时。高值可能表示网格体碰撞体占用大量资源。此外,如果网格体未预烘焙,请注意运行时网格体烘焙峰值。

  • A/B 测试:比较性能。使用附加了网格碰撞器的游戏对象创建一个测试方案。然后,创建附加了复合碰撞器近似值的同一游戏对象的版本。在相同的碰撞条件下测试两者,并进行比较探查器帮助你优化游戏的窗口。它显示在游戏各个区域花费的时间。例如,它可以报告渲染、动画或游戏逻辑所花费的时间百分比。更多信息
    请参阅术语表
    数据。

  • 考虑替代方案:如果网格体碰撞器影响性能,请考虑替代方案:

  • 将网格的图形表示与其物理表示分开,以简化其网格。你可能想要使用不同的游戏对象,以便物理系统可以使用单独的简化网格。有关更多信息,请参阅为网格体碰撞器准备网格体

  • 如果您有动态对象,请考虑使用复合碰撞器来实现碰撞保真度。

  • 请记住,对于动态刚体允许游戏对象受到模拟重力和其他力影响的组件。更多信息
    请参阅术语表
    和网格体碰撞体组件,它们必须是凸的。如果需要凹面动态碰撞,复合碰撞器是标准方法。

其他资源

碰撞体类型和性能
使用刚体睡眠来提高物理性能