Unity Navigation使用遇到的问题
总结问题,分享互助。今天使用导航网格遇到了一个报错, can only be called on an active agent that has been placed on a NavMesh.
看意思,大概是我的agent没有放在烘焙好的导航网格上。
当我在场景中直接拖拽一个agent的时候是没问题的,问题出在我动态创建一个物体,给物体增加一个NavMeshAgent组件,下面称为A,然后控制它移动或者其他相关操作。
出现问题后,我检查了A的物体的位置,我将物体完全摆放在NavMesh上,下图蓝色上,也完全没有用。
然后我尝试,将地面(下图蓝色的物体)放在(0,0,0)位置的时候,报错消失了。然后我将它放在(111,0,340)或者更大的位置上就出现了问题。不知道发生了什么。。。
如果将A的NavMeshAgent组件enable = false,隔几帧在enable = true就没问题了。但这总是旁门左道,但是到这里基本可以猜测到,一定是有地方不对导致NavMeshAgent有些数据没有初始化导致的
总之可能和位置有关系。
最后又查阅了一遍文档,发现有个函数,专门用来设置位置,就试了一下然后就对了,尴尬。。,最近最尴尬的一个问题,还花了挺久时间。。。
上解决方案:
代码创建一个NavMeshAgent之后,修改位置的时候,不要使用Transform.Position,用下面的方法
页:
[1]