SuperAPI AI 工具集

fix-3d-physics-collisions

编程与开发

查看项目

更新于 11-08 11:47

技能介绍

用途

该技能面向 Unity 3D PhysX 物理问题的诊断与修复,覆盖碰撞回调(OnCollisionEnter/Stay/Exit)、触发器回调(OnTriggerEnter/Stay/Exit)、射线检测(Physics.Raycast)、快速移动物体穿透、布娃娃异常、CharacterController 碰撞以及物理参数导致的整体失效等场景。

主要能力

  • 按用户症状匹配内置的 STOP CHECK Fast-Path,一旦命中即直接给出已验证的完整答案,不再检索项目或文档。
  • 提供碰撞清单、触发器清单、射线清单和“其他症状”清单,逐项检查组件类型、层级碰撞矩阵、回调签名与挂载位置、非凸网格碰撞体等常见原因。
  • 识别控制台典型错误并给出对应修复,例如非凸 MeshCollider 与动态刚体或 Is Trigger 同用、contactOffset 设为 0 等。
  • 明确若干关键事实:两个运动学触发器之间仍会触发 OnTriggerEnter,Contact Pairs Mode 不影响触发消息;CharacterController.Move() 不会产生 OnCollisionEnter,应改用 OnControllerColliderHit;AddForce 失效可能是刚体休眠,需先调用 WakeUp();所有物理冻结但射线仍命中通常是 Time.timeScale 为 0。
  • 对超出范围的 2D 物理与 DOTS 物理给出明确边界提示,并在相关技能已安装时转交。

使用方式

技能要求使用 unity CLI(unity command --format json)以及 unity-cli、unity-pipeline 技能分步执行。开始修复前先创建可回滚的还原点;只执行用户要求的内容,不改动无关资源或文件;不向用户脚本中遗留验证代码或日志。流程上先读取与症状对应的官方文档页面并说明所读文件,再从 ProjectSettings/ProjectVersion.txt 读取 Unity 版本以匹配对应版本文档;若没有项目或版本,则按 Unity 6000.3 与 3D PhysX 假定并说明。诊断与文档检索合计不超过 5 次工具调用,超限即依据现有清单给出最可能的诊断。修改项目后按最终步骤检查控制台错误、必要时进入播放模式复现并通过 eval 读取结果。

适用场景

适用于 Unity 3D PhysX 项目中出现碰撞、触发器或射线相关问题时的排查与修复,包括编辑器内正常但打包后异常、移动后碰撞体更新延迟、接触前出现可见间隙、刚体失去响应等情形。

限制

不覆盖 2D 物理与 DOTS 物理;不推荐为使用 CharacterController 的对象额外添加刚体,也不建议通过关闭关节碰撞等方式掩盖布娃娃碰撞体重叠问题;不通过 Edit 模式下的 Physics.Simulate() 验证回调;最终输出必须包含面向用户的诊断结论与修复,不以询问是否继续结束对话。