Version: 6000.3
语言: 中文
优化物理系统的内存使用
优化光线投射和其他物理查询

优化碰撞回调

通过优化物理场来减少垃圾收集器 (GC) 负载并提高性能碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表
回调分配。

Unity 提供物理碰撞回调消息,例如:

默认情况下,每次调用这些回调时,Unity 都会分配新的Collision(或Collider对于触发器)数据对象,以保存有关碰撞的信息。这些频繁的小分配会增加垃圾回收器的负载。

要减少这些回调的分配数量,您可以启用 Reuse Collision Callbacks 设置,使 Unity 重用较小的池Collision数据实例。这减少了内存开销并提高了性能,尤其是在每帧有许多冲突事件的情况下。请注意,如果重用碰撞回调,则Collision传递给回调的数据仅在该特定回调期间有效。

要了解有关垃圾回收的更多信息,请参阅垃圾回收器概述

默认情况下,重用碰撞回调(Reuse Collision Callbacks)项目设置(Project Settings) 广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他区域的行为方式。更多信息
请参阅术语表
.要确保你在编辑器中重用碰撞回调并减少这些回调的GC分配,请执行以下作:

  1. 转到 编辑(Edit) > 项目设置(Project Settings) 以打开 项目设置(Project Settings) 窗口。
  2. 选择 物理>设置(Physics Settings) 选项卡。
  3. 选择游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
    请参阅术语表
    标签。
  4. 确保启用 重用碰撞回调(Reuse Collision Callbacks) 。

要减少脚本中这些回调的 GC 分配,请将Physics.reuseCollisionCallbacks = true.

其他资源

优化物理系统的内存使用
优化光线投射和其他物理查询