使用物理调试 (Physics Debug) 窗口可以配置和生成场景中 3D 物理活动的视觉呈现。这些可视化显示在场景视图中。
要在 Unity 编辑器中打开物理调试 (Physics Debug) 窗口,请选择窗口 (Window) > 分析 (Analysis) > 物理调试器 (Physics Debugger)。
物理调试器在场景视图中插入一个物理调试 (Physics debug) 面板,然后打开一个物理调试 (Physics Debug) 窗口,其中包含以下选项卡:
要将物理调试 (Physics Debug) 窗口恢复为默认设置,请选择重置 (Reset)。
有关改善项目中物理性能的更多信息,请参阅有关物理性能分析器的文档。
在 Unity 中打开物理调试 (Physics Debug) 窗口时,场景视图中将显示物理调试 (Physics Debug) 面板。默认情况下,该面板显示在场景视图的右下角;但是,可以单击并拖动来移动该面板。
| 属性 | 描述 |
|---|---|
| Collision Geometry | 启用碰撞几何体 (Collision Geometry) 可在场景视图中可视化碰撞信息。禁用碰撞几何体 (Collision Geometry) 可在场景视图中隐藏碰撞信息。 |
| Mouse Select | 启用鼠标选择 (Mouse Select) 可启用鼠标悬停突出显示和鼠标选择功能。如果在可视化视图中大型游戏对象相互阻碍,此功能将很有用。 |
信息 (Info) 选项卡包含有关任何选定刚体或接合体游戏对象的数据。可以使用这些数据来监控物理体的行为。无法在此选项卡中编辑属性值。可以通过脚本修改属性值,但不建议执行此操作;在大多数情况下,应通过物理系统施加作用力来更改这些值。
要使特定游戏对象永久停靠在信息 (Info) 选项卡中,请为该游戏对象启用锁定 (Lock)。可以锁定无限数量的游戏对象。使用每行项数 (Number of items per row) 属性,以最便于导航的方式排列信息 (Info) 选项卡。
信息 (Info) 选项卡始终显示以下属性。
| 属性 | 描述 |
|---|---|
| Number of items per row | 定义要在信息 (Info) 选项卡顶行中横向显示的选定游戏对象的数量。 默认情况下,如果选择或锁定多个游戏对象,Unity 会将它们全部纵向显示。但是也可以改为横向排列。使用每行项数 (Number of items per row) 可定义在一个横向行中并排显示的游戏对象的数量,最多 10 个。 如果选定或锁定的游戏对象的数量超过此值,则最近选定的游戏对象会在第一行下方另外显示一行。 游戏对象始终按选择顺序显示在信息 (Info) 选项卡中。此属性的默认值为 1。 |
| Tracked objects | 显示当前显示在信息 (Info) 选项卡中的唯一游戏对象的总数。这包括选定的游戏对象和锁定的游戏对象。不包含重复项。 |
| Clear locked objects | 选择清除锁定对象 (Clear locked objects) 可为所有游戏对象禁用锁定 (Lock)。这会从信息 (Info) 选项卡中删除层级 (Hierarchy) 窗口中尚未选择的所有游戏对象。 |
在层级 (Hierarchy) 窗口中选择具有物理体(即刚体或接合体)的游戏对象时,信息 (Info) 选项卡会显示以下属性。
| 属性 | 描述 |
|---|---|
| GameObject | 显示以下属性引用的选定或锁定游戏对象的名称。 |
| Draw Gizmos for | 选择物理调试 (Physics Debug) 窗口应显示其辅助图标的物理属性。 |
| - Center of Mass | 显示一个辅助图标,指示物理体的全局质心的位置(参阅世界质心)。 |
| - Inertia Tensor | 显示一个辅助图标,指示物理体的惯性张量的旋转和缩放(参阅惯性张量)。 |
| Lock | 即使未在层级 (Hierarchy) 窗口中选中游戏对象,启用锁定 (Lock) 也可将游戏对象保留在信息 (Info) 选项卡中。 |
| Speed | 物理体移动的速率,以米/秒 (m/s) 为单位。 |
| Velocity | 物理体沿每个矢量移动的速度,以米/秒 (m/s) 为单位。 |
| Angular Velocity | 物理体沿每个矢量移动的速度,以度/秒为单位。 |
| Inertia Tensor | 此物理体的惯性张量。与质量一样,惯性张量定义了使物理体移动所需的力或扭矩的大小;但是,质量影响线性移动,而惯性张量影响旋转移动。惯性张量 (Inertia Tensor) 的值越大,使物理体绕其轴旋转所需的扭矩就越大。 |
| Inertia Tensor Rotation | 惯性张量的旋转。默认情况下,Unity 根据附加到物理体的所有碰撞体自动计算惯性张量的旋转。 |
| Local Center of Mass | 物理体的质心沿每个矢量的局部位置。要通过脚本改变质心,请使用 centerOfMass。Unity 还可以根据碰撞体位置改变质心。 |
| World Center of Mass | 物理体的质心沿每个矢量的全局位置。要通过脚本改变质心,请使用 worldCenterOfMass。Unity 还可以根据碰撞体位置改变质心。 |
| Sleep State | 物理体的睡眠状态。如果物理体处于唤醒状态并且包含在物理计算中,则显示唤醒 (Awake)。如果物理体处于睡眠状态并且未包含在物理计算中,则显示睡眠 (Asleep)。 |
| Sleep Threshold | 物理体的能量阈值,低于此阈值时,物理引擎将停止将物理体包含在物理更新中。默认情况下,这是在全局物理设置中定义的睡眠阈值 (Sleep Threshold) 的值。 |
| Max Linear Velocity | 物理体可以达到的最大线速度,由 maxLinearVelocity 定义。 |
| Max Angular Velocity | 物理体可以达到的最大旋转速度,由 maxAngularVelocity 定义。 |
| Solver Iterations | 物理系统解算器需要对此物理体执行的迭代次数。 |
| Solver Velocity Iteration | 物理系统解算器需要对此物理体执行的速度迭代次数。这些属性使重叠游戏对象的退回速度更接近正确值,同时将接触弹性纳入考虑。 |
| Body Index | 树中的接合体索引。此属性仅适用于接合体。 |
筛选 (Filtering) 选项卡包含的属性用于配置物理调试可视化视图中显示的物理元素。
| 属性 | 描述 |
|---|---|
| Show Physics Scene | 如果同时加载了多个物理场景,则选择要包含在可视化视图中的物理场景。 |
| Show Unity Scene | 如果同时加载了多个场景,则选择要包含在可视化视图中的 Unity 场景。 |
| Show Layers | 选择要在可视化视图中显示的层。 |
| Show Static Colliders | 启用显示静态碰撞体 (Show Static Colliders) 可显示没有刚体组件的碰撞体的可视化。禁用显示静态碰撞体 (Show Static Colliders) 可移除没有刚体组件的碰撞体的可视化。 |
| Show Triggers | 启用显示触发器 (Show Triggers) 可显示作为触发器的碰撞体的可视化。禁用显示触发器 (Show Triggers) 可移除作为触发器的碰撞体的可视化。 |
| Show Rigidbodies | 启用显示刚体 (Show Rigidbodies) 可显示刚体组件的可视化。禁用显示刚体 (Show Rigidbodies) 可移除刚体组件的可视化。 |
| Show Kinematic Bodies | 启用显示运动物理体 (Show Kinematic Bodies) 可显示具有运动刚体组件的碰撞体的可视化。禁用显示运动物理体 (Show Kinematic Bodies) 可移除具有运动刚体组件的碰撞体的可视化。 |
| Show Articulation Bodies | 启用显示接合体 (Show Articulation Bodies) 可显示接合体组件的可视化。禁用显示接合体 (Show Articulation Bodies) 可移除接合体组件的可视化。 |
| Show Sleeping Bodies | 启用显示睡眠物理体 (Show Sleeping Bodies) 可显示具有睡眠刚体组件的碰撞体的可视化。禁用显示睡眠物理体 (Show Sleeping Bodies) 可移除具有睡眠物刚体组件的碰撞体的可视化。 |
| Collider Types | 使用这些选项可在物理可视化视图中显示特定碰撞体类型。 |
| - Show BoxColliders | 启用显示盒型碰撞体 (Show BoxColliders) 可显示盒型碰撞体的可视化。禁用显示盒型碰撞体 (Show BoxColliders) 可移除盒型碰撞体的可视化。 |
| - Show SphereColliders | 启用显示球形碰撞体 (Show SphereColliders) 可显示球形碰撞体的可视化。禁用显示球形碰撞体 (Show SphereColliders) 可移除球形碰撞体的可视化。 |
| - Show CapsuleColliders | 启用显示胶囊碰撞体 (Show CapsuleColliders) 可显示胶囊碰撞体的可视化。禁用显示胶囊碰撞体 (Show CapsuleColliders) 可移除胶囊碰撞体的可视化。 |
| - Show MeshColliders (convex) | 启用显示网格碰撞体(凸面体)(Show MeshColliders (convex)) 可显示启用了是否为凸面 (Is Convex) 属性的网格碰撞体的可视化。禁用显示网格碰撞体(凸面体)(Show MeshColliders (convex)) 可移除启用了是否为凸面体 (Is Convex) 属性的网格碰撞体的可视化。 |
| - Show MeshColliders (concave) | 启用显示网格碰撞体(凹面体)(Show MeshColliders (concave)) 可显示禁用了是否为凸面体 (Is Convex) 属性的网格碰撞体的可视化。禁用显示网格碰撞体(凹面体)(Show MeshColliders (concave)) 可移除禁用了是否为凸面体 (Is Convex) 属性的网格碰撞体的可视化。 |
| - Show TerrainColliders | 启用显示地形碰撞体 (Show TerrainColliders) 可显示地形碰撞体的可视化。禁用显示地形碰撞体 (Show TerrainColliders) 可移除地形碰撞体的可视化。 |
| - Show None | 选择无显示 (Show None) 可清除所有筛选条件并从可视化视图中移除所有碰撞体。 |
| - Show All | 选择显示全部 (Show All) 可启用所有筛选条件并显示所有碰撞体的可视化。 |
渲染 (Rendering) 选项卡包含的属性用于配置 Unity 渲染和显示物理可视化的方式。
| 属性 | 描述 |
|---|---|
| Static Colliders | 选择一种颜色来表示可视化视图中的静态碰撞体(不含任何刚体组件的碰撞体)。 |
| Triggers | 选择一种颜色来表示可视化视图中还作为触发器的碰撞体。 |
| Rigidbodies | 选择一种颜色来表示可视化视图中的刚体组件。 |
| Kinematic Bodies | 选择一种颜色来表示可视化视图中的运动刚体组件。物理系统不控制运动刚体组件。 |
| Articulation Bodies | 选择一种颜色来表示可视化视图中的接合体组件。 |
| Sleeping Bodies | 选择一种颜色来表示可视化视图中的睡眠刚体组件(当前无法与物理引擎互动)。 |
| Variation | 定义所选颜色与随机颜色的混合程度。使用此设置可按颜色直观区分碰撞体以及查看游戏对象的结构。该值介于 0 和 1 之间,默认情况下设置为 0.15。 |
| Transparency | 设置可视化视图中绘制的碰撞几何体的透明度。该值介于 0 和 1 之间,默认情况下设置为 0.5。 |
| Force Overdraw | 启用力过度绘制 (Force Overdraw) 可在可视化视图中的渲染几何体上方显示碰撞体几何体。如果渲染几何体遮挡了碰撞体可视化,这将很有用。禁用力过度绘制 (Force Overdraw) 可显示相对于摄像机显示的碰撞体几何体。 |
| View Distance | 设置可视化的视图距离。默认情况下,该值设置为 1000。该值以单位测量,在 Unity 中默认为 1m。 |
| Terrain Tiles Max | 设置可视化视图中地形区块的最大数量。默认情况下,该值设置为 60。 |
| Gizmos settings | 配置信息 (Info) 选项卡控制的物理调试辅助图标。 |
| - Constant screen size | 启用恒定屏幕大小 (Constant screen size) 可使物理调试辅助图标在距离摄像机任意距离的屏幕上显示为相同的大小。禁用恒定屏幕大小 (Constant screen size) 可使辅助图标的大小随视角缩放。 |
| - Inertia Tensor scale | 定义用于乘以惯性张量矢量 3 的值。在惯性张量特别大时很有用;例如,需要可视化和观察矢量分量的比率时。 |
接触 (Contacts) 选项卡中包含的属性用于配置在物理调试可视化视图中显示的接触数据以及用于不同类型接触的颜色。
| 属性 | 描述 |
|---|---|
| Show Contacts | 启用显示接触 (Show Contacts) 可显示接触的可视化。 |
| - Show All Contacts | 启用显示所有接触 (Show All Contacts) 可显示物理调试可视化视图中所有碰撞接触数据的可视化。禁用显示所有接触 (Show All Contacts) 可限制物理调试可视化视图中显示的接触数据。 禁用显示所有接触 (Show All Contacts) 后,可视化视图中仅显示以下接触: - 具有 MonoBehaviour 脚本的碰撞体,可接受来自 OnCollisionEnter、OnCollisionSay 或 OnCollisionExit 的消息- providesContact 属性设置为 true 的碰撞体。 |
| - Show Impulse | 启用显示脉冲 (Show Impulse) 可在可视化视图中显示表示接触点脉冲的箭头。禁用显示脉冲 (Show Impulse) 可移除脉冲可视化。 |
| - Show Separation | 启用显示分离 (Show Separation) 可在可视化视图中显示表示接触点分离的线段和圆形。禁用显示分离 (Show Separation) 可移除分离可视化。 |
| - Use Filtering settings | 启用使用筛选设置 (Use Filtering settings) 可使用筛选 (Filtering) 选项卡中的设置来筛选传入的接触可视化。禁用使用筛选设置 (Use Filtering settings) 可仅使用接触 (Contacts) 选项卡中的设置。 |
| Contact colors | 选择 Unity 应在可视化视图中使用以指示碰撞接触数据的颜色。 |
| Use varied colors | 启用使用不同颜色 (Use varied colors) 可为每个接触碰撞体对使用随机颜色。禁用使用不同颜色 (Use varied colors) 可使用在以下属性中定义的三种颜色(接触颜色 (Contact color)、接触分离颜色 (Contact separation color) 和接触脉冲颜色 (Contact impulse color))。 |
| Contact color | 选择一种颜色来表示接触。这在可视化视图中显示为从接触点开始并指向接触法线的箭头。 |
| Contact separation color | 选择一种颜色来表示接触分离。这在可视化视图中显示为线段和圆形。 |
| Contact impulse color | 选择一种颜色来表示接触脉冲。这在可视化视图中显示为指向法线方向的箭头,长度等于脉冲的长度。 |
查询 (Queries) 选项卡包含的属性用于配置在物理调试可视化视图中显示的查询类型及其显示方式。有关 PhysX 查询的信息,请参阅 NVIDIA PhysX 文档的场景查询和几何体查询。
| 属性 | 描述 |
|---|---|
| Show queries | 启用显示查询 (Show queries) 可显示物理查询的可视化。 |
| Query color | 选择 Unity 应在可视化视图中使用以指示物理查询的颜色。 |
| Show shapes | 选择要在物理调试可视化视图中显示的查询形状。启用一种查询形状可在可视化视图中显示具有该形状的查询。禁用一种查询形状可从可视化视图中移除具有该形状的查询。 选项包括: - 盒型 (Box) 形状查询 - 胶囊 (Capsule) 形状查询 - 碰撞体 (Collider) 形状查询 - 射线 (Ray) 形状查询 |
| Show types | 选择要在可视化视图中显示的查询类型。启用一种查询类型可在可视化视图中显示具有该类型的查询。禁用一种查询类型可从可视化视图中移除具有该类型的查询。有关 PhysX 查询类型的信息,请参阅 NVIDIA PhysX 文档的几何体查询。 选项包括: - 叠加 (Overlap) 查询 - 检查 (Check) 查询 - 投射 (Cast) 查询 |
| Max Queries | 定义可以在物理调试 (Physics Debug) 窗口中同时可视化的查询的最大数量。默认情况下,该值设置为 100。 |
| Show None | 选择无显示 (Show None) 可清除所有筛选条件并从可视化视图中隐藏所有查询形状和类型。 |
| Show All | 选择显示全部 (Show All) 可启用所有筛选条件并在可视化视图中显示所有查询形状和类型。 |