55.PhysicsDebug窗口Contacts和Queries

55.性能优化-CPU-物理-PhysicsDebugger窗口Contacts和Queries


55.1 知识点

Contacts(接触/联系信息)页签的作用

Contacts 用于显示物体之间的物理接触信息。
主要用途是调试碰撞没有触发、穿模、弹力怪异等问题,能看到碰撞点位置与法线方向。

Contacts(接触/联系信息)页签的参数含义

接触点显示信息相关

  1. Show Contacts(显示接触信息)
    总开关,是否在 Scene 里显示物体接触点。开启后才能设置下方选项。
  2. Show All Contacts(显示所有接触信息)
    显示所有接触点(例如箱子落地可能有多个接触点)。
  3. Show Impulse(显示接触点冲量)
    显示物理引擎在接触点施加的反作用力,用于调试反弹力度与碰撞强度。
  4. Show Separation(显示接触点分离向量)
    显示物体相互“推开”的方向和距离,用于检查是否正确分离、避免穿透。
  5. Use Filtering settings(使用过滤设置)
    勾选后应用 Filtering 页签的过滤条件,不勾选则显示所有接触点。

接触点颜色设置

  1. Use varied colors(使用多种颜色)
    使用随机颜色区分不同接触点,避免信息混在一起。
  2. Contact color(普通接触点颜色)
  3. Contact separation color(分离向量颜色)
  4. Contact impulse color(冲量颜色)

调试建议

Contacts 页签主要帮助在 Scene 中清楚看到:

  1. 物体之间到底哪些点发生了接触。
  2. 接触点的碰撞强度。
  3. 接触点的分离方向和距离。
  4. 不同类型信息的颜色区分。

Queries(查询)页签的作用

Queries 用于可视化物理查询操作。
主要用途是调试射线、范围检测逻辑是否正常,例如子弹没命中是 Raycast 没命中还是方向错误。

Queries(查询)页签的参数含义

查询显示设置

  1. Show queries(显示物理查询信息)
    总开关,勾选后会把运行时的物理查询(Raycast、Overlap 等)绘制到 Scene 视图。
  2. Query color(查询颜色)
    查询调试图形的颜色,例如 Raycast 的线段、SphereOverlap 的球体边框。

Show shapes(显示形状)

  1. Sphere:显示球体查询(范围检测)。
  2. Box:显示盒装查询(范围检测)。
  3. Capsule:显示胶囊体查询(范围检测)。
  4. Ray:显示射线检测。

Show types(显示类型)

  1. Overlay
    显示 Overlay 类型的查询,例如 Physics.OverlapSphere
  2. Check
    显示 Check 类型的查询(返回 bool,判断是否相交),例如 Physics.CheckBox
  3. Cast
    显示 Cast 类型的查询,例如 Physics.Raycast

其他参数

  1. Max Queries
    最多显示多少条查询结果。
  2. Show None / Show All
    一键隐藏或显示所有查询。

调试建议

Queries 页签主要用于调试物理检测逻辑:

  1. 直观看到射线、球体、盒子、胶囊体的检测范围与方向,排查调用问题。
  2. 判断子弹没命中、Overlap 检测不到碰撞体等问题。
  3. 控制显示数量,避免画面过载。

55.2 知识点代码

Lesson55_性能优化_CPU_物理_PhysicsDebugger窗口Contacts和Queries.cs

public class Lesson55_性能优化_CPU_物理_PhysicsDebugger窗口Contacts和Queries
{
    #region 知识点一 Contacts(接触\联系信息)页签的作用

    //显示物体之间的物理接触信息
    //用途:
    //调试 碰撞为什么没有触发、为什么会穿模、为什么弹力怪异
    //能看到碰撞点在哪里、法线指向哪里

    #endregion

    #region 知识点二 Contacts(接触\联系信息)页签的参数含义

    //思维导图中讲解

    #endregion

    #region 知识点三 Queries(查询)页签的作用

    //可视化物理查询操作
    //用途:
    //调试射线、范围检测逻辑是否正常
    //比如子弹打不中敌人,是因为 Raycast 没命中还是方向错了的问题

    #endregion

    #region 知识点四 Queries(查询)页签的参数含义

    //思维导图中讲解

    #endregion
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏