我在编辑器中收到此错误
“SetDestination”只能在已放置在NavMesh上的活动代理上调用。这些是我在解决问题时尝试的步骤:翘曲……
我们可以使用navmesh组件 导航表面 2. navmesh修饰符 3. navmesh修改器音量 4. navmesh offlink 通过使用这些组件,我们可以轻松连接navmesh和navmeshagent。
使Nav Mesh Agents位置变形有时会导致错误,尤其是当它从一个navmesh转到另一个navmesh时。
这是一个奇怪的错误,但它似乎检测代理是否不在导航网格上,然后禁用并重新启用代理 - 将解决问题(在我的情况下它确实)。
我在我的项目中通过以下操作解决了这个问题。
//use some existing reference to your NavMeshAgent NavMeshAgent agent = PlayerController.instance.GetComponent<NavMeshAgent>(); //This will fire when you get the error you're describing. if (!agent.isOnNavMesh) { Vector3 warpPosition; //Set to position you want to warp to agent.transform.position = warpPosition; agent.enabled = false; agent.enabled = true; }