導航報錯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);的時候,就不要改變位置信息,以免重新激活時離導航網格太遠。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.