Version: 6000.3
语言: 中文
移动静态碰撞器以防止性能问题
选择宽相修剪算法

使用图层碰撞矩阵减少重叠

减少碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表
通过配置交互规则来计算开销游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
与碰撞层。

使用 层碰撞矩阵(Layer Collision Matrix) 控制不同层上的对象在物理模拟中如何相互交互。你可以将对象分配给其中的层检查器一个Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
,然后使用“图层碰撞矩阵”来定义它们之间的交互规则。定义对象在图层基础上的交互方式可以减少每帧执行的重叠检查和碰撞计算的次数。

基于层的过滤的好处是:

  • 减少宽相位工作负载:物理系统在计算潜在碰撞时跳过整个对象组。
  • 提高窄相位效率:通过忽略不相关的相互作用,仿真可以将计算资源集中在有意义的碰撞上。
  • 更好的可扩展性:有助于保持对象数量和复杂性的性能场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
    请参阅术语表
    增加。

要开始使用碰撞层进行优化,请首先定义层并将其分配给游戏对象。然后,配置这些层在层碰撞矩阵中的交互方式。该矩阵直接告诉物理系统哪些层在碰撞检查期间必须相互忽略,从而在模拟早期有效地剔除潜在的交互。

基于层的推荐最佳实践碰撞检测Unity 执行的自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与任何其他碰撞器接触。更多信息
请参阅术语表
是:

  • 仅启用游戏绝对必要的层之间的交互。
  • 随着项目的增长,定期重新访问碰撞矩阵。禁用未使用的图层对以提高性能。
  • 对层使用清晰一致的命名约定,以简化调试和将来的维护。
  • 使用探查器帮助你优化游戏的窗口。它显示在游戏各个区域花费的时间。例如,它可以报告渲染、动画或游戏逻辑所花费的时间百分比。更多信息
    请参阅术语表
    以监控更改的影响。在物理分析器模块中,观察与宽相位对、窄相位检查和活动接触相关的计数器。减少不必要的层交互会导致这些值的减少,尤其是宽相位工作。

要了解更多信息,请参阅基于图层的碰撞检测

要定义图层并将其分配给游戏对象并配置图层碰撞矩阵,请执行以下作:

  1. 选择 编辑(Edit) > 项目设置(Project Settings) 以打开 项目设置(Project Settings) 窗口。
  2. 选择“标记和图层”选项卡。
  3. 在 图层(Layers) 部分中,在 用户图层(User Layers) 部分下定义自定义图层。例如,您可以创建“玩家”、“环境”或“射弹”图层。
  4. 在编辑器中,将游戏对象分配给 Inspector 窗口中的图层。要了解更多信息,请参阅层Unity中的层可用于有选择地选择游戏对象组加入或退出某些进程或计算。这包括相机渲染、光照、物理碰撞或您自己的代码中的自定义计算。更多信息
    请参阅术语表
    .
  5. 选择 **编辑>项目设置。
  6. 选择 物理>设置(Physics Settings) 选项卡。
  7. 选择“共享”选项卡。
  8. 图层碰撞矩阵(Layer Collision Matrix) 中,取消选中任何你不想交互的图层对。例如,你可能不希望射弹与其他射弹发生碰撞。

其他资源

移动静态碰撞器以防止性能问题
选择宽相修剪算法