首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity3D如何连接NavMesh和NavMeshAgent

Unity3D如何连接NavMesh和NavMeshAgent
EN

Stack Overflow用户
提问于 2017-09-29 19:35:48
回答 2查看 4.7K关注 0票数 2

我在编辑器里看到了这个错误

"SetDestination" can only be called on an active agent that has been placed on a NavMesh.以下是我在解决问题时尝试的步骤:

  1. 将NavmeshAgent扭曲到NavMesh位置
  2. 手动将NavMeshAgent移动到NavMesh
  3. 弹出NavMesh并执行上面的步骤
  4. 用NavMeshAgent创建一个盒子和一个新的NavMesh
    • 有没有其他我可以用的小窍门?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-30 03:11:24

扭曲Nav网格代理的位置有时会导致错误,特别是如果它已经从一个导航到另一个。

这是一个奇怪的错误,但它似乎检测代理是否不在导航网上,然后禁用并重新启用代理将修复这个问题(在我的例子中是这样)。

我已经在我的项目中解决了这个问题,当我出现偏差时,我会执行以下操作。

代码语言:javascript
复制
//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;
}
票数 4
EN

Stack Overflow用户

发布于 2018-04-03 04:52:00

我们可以使用导航组件,1,导航网格曲面,2,navmesh改性剂,3,navmesh修改体,4. navmesh脱离链接,通过这些组件,我们可以方便地连接脐网格和导航。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46495820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档