问题
在学习《设计模式与游戏完美开发》一书的时候,从他提供的github仓库地址clone的工程运行后报错。
报错内容是:"SetDestination" can only be called on an active agent that has been placed on a NavMesh.
原因
很容易知道这是unity自带的导航系统相关的问题。
一般这方面的问题可能是以下一个方面。
1. 未设置物体的Navgation static标签。
2. 没有烘焙寻路网格。
3. 寻路物体本身没有设置导航组件。
循着这个思路,最后发现,烘焙寻路网格的物体没有设置Navgation static标签。
但是设置标签后,物体仍然没有烘焙出寻路网格。
发现原因是,那些物体没有meshrender和collider组件,没有这些组件,是不会被烘焙的。
解决办法
给相应的物体加上Navgation static 和 meshrender和collider。然后烘焙寻路网格,完事。
如果嫌修改麻烦,可以直接clone我修改后的工程。链接