物理性能分析器(物理分析器)

物理性能分析器(物理分析器)
物理分析器显示由场景中的物理引擎处理的物理统计信息。这些信息有助于诊断和解决与场景中的物理现象相关的性能问题或意外差异。
另请参见物理调试的可视化。
物理分析器属性
属性函数
未处于睡眠状态的非移动刚体组件的活动动态数量。
主动运动学非睡眠移动刚体组件的数量。请注意,连接有接头的移动刚体组件可能每帧处理多次,这将包括在显示的数量中。当在一个帧中调用移动位置或移动旋转时,移动刚体处于活动状态,并在下一帧中保持活动状态。
静态碰撞器没有连接刚体组件的游戏对象或没有连接刚体组件的父游戏对象上碰撞体组件的数量。如果这种游戏对象或其父游戏对象具有刚体组件,碰撞对象将不被视为静态碰撞对象。这些冲击器被称为复合冲击器。这有助于以方便的方式排列多个碰撞体,而不是将所有碰撞体作为刚体组件放置在同一个游戏对象上。
刚体物理引擎处理的刚体组件的数量(不考虑组件的睡眠状态)。
触发器重叠重叠触发器的数量(成对计数)。
活动约束由物理引擎处理的原始约束的数量。约束用作关节和碰撞响应的构造块。例如,限制可配置关节的线性或旋转自由度涉及每个限制的基本约束。
“接触”场景中所有碰撞体之间的接触对总数,包括触发器重叠对的数量。请注意,一旦每个碰撞体对之间的距离低于某个用户可配置的限制,碰撞体对将创建一个接触对,因此您可能会看到为尚未接触或重叠的刚体组件生成的接触。更多细节请参见碰撞器。接触偏移和接触点。分离。
注意:
这些数字可能与场景中具有物理组件的游戏对象的确切数量不一致。这是因为某些物理组件根据其他组件(例如,附加的关节组件)的影响以不同的速率进行处理。要计算带有特定物理组件的游戏对象的确切数量,请使用findobjectsoftype函数编写一个自定义脚本。
物理分析器不显示睡眠刚体组件的数量。这些是独立于物理引擎的组件,因此它们不由物理分析器处理。
使用物理分析器了解性能问题。物理模拟在主逻辑更新周期的单个固定频率更新周期中运行,并且只能通过每次调用的时间来提前时间。这类似于更新()和修复更新()之间的区别(有关更多信息,请参见时间管理器文档)。
当复杂的逻辑或图形帧需要很长时间时,物理分析器必须每帧调用几次物理模拟。这意味着占用大量资源的帧将占用更多的时间和资源,这很容易导致物理模拟,因为最大允许时间步长值(可在编辑>:项目设置>中找到;设定时间)并暂时停止。
您可以在项目中检测到这一点,方法是选择“cpu使用率分析器”,并检查对物理的调用次数。加工或物理。在概述部分进行模拟。
“调用”列中值为1的物理事件探查器在此示例图中,__calls__列中值为1表示在最后一个逻辑帧上调用了一次物理模拟。
呼叫计数接近10可能表示有问题。第一个解决方案是减少物理模拟的频率。如果问题仍然存在,请最好看的游戏小说在physics profiler不得不使用大量模拟调用来赶上游戏时间之前,检查是什么导致了大帧。有时,大的图形帧可能会导致场景中稍后有更多的物理模拟调用。
要了解场景中物理模拟的更多信息,请单击三角形箭头展开_ _物理学。处理__,如上图所示。您可以看到为更新场景而运行的物理引擎任务的实际名称。您可能会看到两个最常见的名称:
_ _ pxs _ _ _hysx solver的缩写,这是关节所需的物理引擎任务,用于解决重叠的身体接触。
_ _ scscscene _ _ _:更新场景、运行宽和窄阶段以及整合刚体(由于力和冲力将它们移动到空所需的任务。关于两阶段碰撞检测阶段的定义,请参见史蒂文·拉瓦尔的规划算法。
文章来源:www.atolchina.com