仅做个人笔记
Unity的Physics Profiler模块是一个用于监控和分析场景中物理系统性能的工具。它可以帮助开发者诊断和解决与物理相关的性能问题,优化物理模拟的效率。以下是Physics Profiler模块的详细介绍、参数说明以及需要重点关心的方面:
Physics Profiler模块介绍
Physics Profiler模块主要提供以下信息和功能:
- 物理系统性能监控:跟踪应用程序在物理计算上所花费的时间,包括碰撞检测、刚体更新等。
- 物理资源使用情况:显示物理模块使用的内存、活跃的物理对象数量等。
- 调试和优化工具:结合Physics Debug Visualization,帮助进一步调试和理解应用中的物理问题。
参数介绍
以下是Physics Profiler模块中一些重要的参数及其含义:
图表分类(Chart categories)
Chart | Function |
---|---|
Physics Used Memory | 物理模块总共使用的内存量。 |
Active Dynamic Bodies | 处于活跃状态的Rigidbody和ArticulationBody组件数量,这些组件未处于睡眠状态。 |
Active Kinematic Bodies | 活跃的Kinematic Rigidbody组件数量。当在帧中调用MovePosition或MoveRotation时,Kinematic Rigidbody处于活跃状态,并在下一帧保持活跃。注意:Unity可能会多次处理带有连接关节的Kinematic Rigidbody组件,这会影响显示的值。 |
Dynamic Bodies | Rigidbody和ArticulationBody组件的总数。 |
Overlaps | 重叠事件的数量。当碰撞体相互重叠时,会发生重叠事件。 |
Trigger Overlaps | 与触发器碰撞体的重叠事件数量(按对计数)。 |
Discreet Overlaps | 使用离散碰撞检测解决的重叠事件数量。 |
Continuous Overlaps | 使用连续碰撞检测解决的重叠事件数量。 |
Physics Queries | 物理查询的总数,例如射线投射和形状投射。 |
模块详情窗格(Module details pane)
当在Physics Profiler模块中选择一个帧时,模块详情窗格会显示有关场景中物理的进一步详细信息,包括:
Statistic | Description |
---|---|
Physics Used Memory | 物理模块总共使用的内存量。 |
Dynamic Bodies | Rigidbody和ArticulationBody组件的总数。 |
Articulation Bodies | 场景中ArticulationBody组件的数量。 |
Active Dynamic Bodies | 处于活跃状态的Rigidbody和ArticulationBody组件数量。 |
Active Kinematic Bodies | 活跃的Kinematic Rigidbody组件数量。 |
Static Colliders | 没有Rigidbody或ArticulationBody组件的碰撞体数量。 |
Colliders Synced | 与变换同步的碰撞体数量。 |
Rigidbodies Synced | 与变换同步的Rigidbody组件数量。 |
Physics Queries | 物理查询的总数。 |
Total Overlaps | 重叠事件的总数。 |
Broadphase Adds/Removes | 广阶段算法添加或移除的碰撞体总数。 |
Narrowphase Touches | 自上一帧以来丢失或新出现的碰撞事件总数。 |
重点关心的方面
在使用Physics Profiler模块时,以下几点需要特别关注:
- 活跃物理对象数量:监控Active Dynamic Bodies和Active Kinematic Bodies的数量,过多的活跃物理对象可能导致性能下降。
- 物理内存使用:关注Physics Used Memory参数,过多的内存占用可能影响应用的整体性能。
- 碰撞和重叠事件:查看Overlaps、Trigger Overlaps等参数,过多的碰撞和重叠事件可能增加物理计算的负担。
- 物理查询效率:Physics Queries参数显示了物理查询的总数,过多的射线投射等查询可能影响性能。
- 碰撞检测类型:注意Discreet Overlaps和Continuous Overlaps的比例,根据游戏需求调整碰撞检测类型,以优化性能。