首页 > 手游开发 > Unity3D > 导航报错SetDestination() can only be called on an active agent that has been placed on a NavMesh
2020
04-07

导航报错SetDestination() can only be called on an active agent that has been placed on a NavMesh

原因:初始化导航组件NavMeshAgent 的时候,agent
离navmesh太远。isOnNavMesh属性为false;
解决办法:
在初始化预制体的时候,传入诞生点位置和旋转信息。
GameObject.Instantiate(m_shooter, m_currBirthPoint.transform.position,m_currBirthPoint.transform.rotation)
as
GameObject;
而不是直接初始化,后设置诞生点位置。
GameObject.Instantiate(m_shooter);
shooter.transform.position = m_currBirthPoint.transform.position;
另外:在重新使用SetActive(true);的时候,也要确保agent
离navmesh足够近。
建议在设置SetActive(false);的时候,就不要改变位置信息,以免重新激活时离导航网格太远。
最后编辑:
作者:搬运工
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。