版本: Unity 6 (6000.0)
语言英语
  • C#

PhysicsJobOptions2D

UnityEngine 中的结构体

/

实现于:UnityEngine.Physics2DModule

建议修改

成功!

感谢您帮助我们提升 Unity 文档的质量。尽管我们无法接受所有提交内容,但我们会阅读用户提出的每项修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

描述

一组用于控制使用作业系统多线程物理模拟时物理操作方式的选项。

多线程物理目前仍处于实验阶段。因此,公开了一些选项,允许进行性能配置,这些配置在该功能退出实验状态后可能不再可用。

物理模拟在以下离散阶段执行

• 查找新的接触点
• 接触碰撞
• 离散求解器(清除岛屿标志 -> 离散岛屿遍历 -> 离散岛屿求解器 -> 同步夹具 -> 查找新的接触点)
• 连续求解器(清除岛屿标志 -> 连续岛屿遍历 -> 离散岛屿求解器 -> 同步夹具 -> 查找新的接触点)
• 清除刚体力量
• 更新触发器接触点

这些阶段按上述顺序执行。每个阶段都作为一项“任务”作业运行。每项任务都执行子作业任务,这些任务显示在上面的括号中。在执行作业时,物理模拟可能会跨多个作业线程处理刚体、接触点、关节等等。您可以为每个线程分配执行特定数量的项目,例如刚体、接触点和关节。这里提供的许多选项都允许您控制分配给每个作业的最小项目数。提高最小值可以减少所需作业的数量。这是因为运行许多作业,每个作业只处理少量项目通常效率不高。默认设置提供了一个不错的性能与作业平衡,但是您可以随意进行实验。

此外,在运行模拟之前,Rigidbody2D插值/外推姿势将被存储起来,以便为每帧插值/外推做好准备。这些也使用作业系统执行,并在此处进行控制。

属性

clearBodyForcesPerJob控制在每个模拟作业中要清除的刚体的最小数量。
clearFlagsPerJob控制在每个模拟作业中要清除的标志的最小数量。
collideContactsPerJob控制在每个模拟作业中要碰撞的接触点的最小数量。
findNearestContactsPerJob控制在每个模拟作业中要查找的最邻近接触点的最小数量。
interpolationPosesPerJob控制在每个模拟作业中要插值的 Rigidbody2D 的最小数量。
islandSolverBodiesPerJob控制在执行岛屿求解时,每个模拟作业中要求解的刚体的最小数量。
islandSolverBodyCostScale在离散岛屿求解过程中缩放每个刚体的成本。
islandSolverContactCostScale在离散岛屿求解过程中缩放每个接触点的成本。
islandSolverContactsPerJob控制在执行岛屿求解时,每个模拟作业中要求解的接触点的最小数量。
islandSolverCostThreshold在离散岛屿求解过程中,岛屿中所有刚体、接触点和关节的最小阈值成本。
islandSolverJointCostScale在离散岛屿求解过程中缩放每个关节的成本。
newContactsPerJob控制在每个模拟作业中要查找的新接触点的最小数量。
syncContinuousFixturesPerJob控制在每个模拟作业中,在连续岛屿求解期间,要同步的广相阶段夹具的最小数量。
syncDiscreteFixturesPerJob控制在每个模拟作业中,在离散岛屿求解期间,要同步的广相阶段夹具的最小数量。
updateTriggerContactsPerJob控制在每个模拟作业中要更新的触发器接触点的最小数量。
useConsistencySorting物理模拟是否应该对多线程结果进行排序,以保持处理顺序一致性?
useMultithreading物理模拟是否应该使用多线程?