包含此页的版本:
不含此页的版本:
通过选择最合适的来优化 CPU 性能collider 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表类型场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表.
选择正确的碰撞器类型直接影响CPU性能。Unity 有多种碰撞器类型,每种碰撞器类型都有不同的计算成本。
要了解更多网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表对撞机组件属性,请参阅网格碰撞器组件参考。
要了解有关碰撞体交互的更多信息,请参阅碰撞体交互。
下表汇总了碰撞器类型及其性能特征,按性能从高到低的顺序排列:
| 对撞机类型 | 性能特点 |
|---|---|
| 球体碰撞体球体形状的碰撞器组件,用于处理游戏对象(如球或其他出于物理目的可以大致近似为球体)的碰撞。更多信息 请参阅术语表 |
最简单、最高效的对撞机。用于圆形对象和通用交互。 |
| 胶囊碰撞器胶囊体形状的碰撞器组件,用于处理游戏对象(如桶和角色肢体)的碰撞。更多信息 请参阅术语表 |
比球体碰撞器稍微复杂一些,但仍然高效。用于字符、杆或其他细长形状。 |
| Box Collider:立方体形状的碰撞器组件,用于处理骰子和冰块等游戏对象的碰撞。更多信息 请参阅术语表 |
高效灵活,特别适用于矩形或块状物体。比 Sphere Collider 或 Capsule Collider 稍微占用更多资源。 |
| 凸面网格碰撞体 | 比原始碰撞器更耗费资源。仅当基本形状或复合碰撞体无法近似几何体时使用。网格必须是凸的。您可以将其附加到游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息 请参阅术语表非运动学刚体允许游戏对象受到模拟重力和其他力影响的组件。更多信息 请参阅术语表附加的组件。 |
| 非凸网格对撞机 | 未选中 凸(Convex) 的网格体碰撞体。资源最密集的碰撞器类型。仅用于需要精确的静态、非移动几何体碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息 请参阅术语表表面。不能附加到非运动刚体。 |
复合碰撞器是通过将多个基元碰撞器(例如 Sphere、Box 和 Capsule 碰撞器)父级设置为具有 Rigidbody 组件的单个游戏对象而形成的。您可以使用由简单组件组成的复合碰撞器来近似复杂形状。复合碰撞器通常比对动态对象使用单个复杂的网格体碰撞器更有效,但它们比单个图元碰撞器更占用资源。
在复合设置中使用尽可能少的原始碰撞器,以使碰撞检测Unity 执行的自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与任何其他碰撞器接触。更多信息
请参阅术语表.
要了解有关复合碰撞器的更多信息,请参阅复合碰撞器。
在以下情况下使用复合碰撞器:
Rigidbody不能这样做,因为单个网格体碰撞体必须是凸的。网格体碰撞体组件需要一个称为“网格体烘焙”的预处理步骤,以将其几何体转换为优化的格式,以实现高效的物理计算。如果此烘焙发生在运行时,可能会导致CPU性能显著峰值。
要了解有关网格体碰撞器组件的更多信息,请参阅网格碰撞器自由形状的碰撞器组件,它接受网格体参考来定义其碰撞表面形状。更多信息
请参阅术语表.
您可以通过执行以下作来避免在运行时进行网格体烘焙:
Physics.BakeMesh适用于所有动态案例,并且您希望减少构建和编辑器处理时间。Physics.BakeMesh:对于在运行时分配或程序生成的网格体,请使用Physics.BakeMesh(meshInstanceId, convex, cookingOptions)显式控制烹饪时间。优选使用Physics.BakeMesh在加载屏幕期间或后台线程中(如果您使用作业系统)。