莫名出现Capsule Collider致模型异常及NavMeshAgent失效求助
可能原因及对应解决方法:
NavMeshAgent自动生成碰撞体
NavMeshAgent默认会自动创建Capsule Collider,且该碰撞体不会在检视面板单独显示。你可以先禁用NavMeshAgent组件,观察场景中的Capsule Collider是否消失。确认后,可在NavMeshAgent的设置中,手动添加自定义碰撞体并勾选Override Agent(不同版本位置可能略有差异,一般在Agent参数组内),强制组件使用你指定的碰撞体,而非自动生成。模型子物体隐藏碰撞体
部分导入模型的子物体层级中可能自带Capsule Collider,但根物体检视面板不会显示。展开模型的层级树,逐个检查子物体的组件列表,找到后直接删除或调整其参数。动画组件动态添加碰撞体
若模型挂载了Animator组件,某些动画状态或状态机行为可能会动态生成碰撞体。临时禁用Animator组件测试,若问题消失,需检查动画控制器内的状态,排查是否存在自动添加碰撞体的脚本或行为。自定义脚本动态添加碰撞体
项目中可能存在脚本通过AddComponent<CapsuleCollider>()动态添加碰撞体。全局搜索该代码片段,找到对应脚本并修改逻辑,避免不必要的自动添加操作;也可通过Edit > Project Settings > Script Execution Order调整脚本执行顺序,排查冲突。Unity编辑器缓存或版本bug
尝试以下操作修复:- 执行
Edit > Clear All Player Prefs清除缓存后重启Unity - 右键模型选择
Reimport重新导入资源 - 若为版本更新后出现的问题,可尝试升级至最新稳定版或回退至之前正常的Unity版本
- 执行
模型下移后自动上移的现象,多是碰撞体与NavMeshAgent的导航逻辑冲突导致——NavMeshAgent会强制将物体拉回导航网格位置。解决碰撞体问题后,该现象通常会随之消失。
内容的提问来源于stack exchange,提问作者Muhammad Fattan

