标签:
it |
分类: Unity3d寻路NavMesh篇 |
今天为了满足策划一个鼠标移到不能走的地方指针显示图标A,可走的为B的需求,做了个DEMO,再次研究了下NAVMESH。
CalculatePath可以把目标点传入后,得到一条路径NavmeshPath;
SamplePathPosition是采样位置,根据你传入的目标点,计算在这个点周围多少半径内,判断是否有寻路网格;
NavMeshAgent.Raycast,这个类似摄像机发射线,是直线,如果这条射线中间有障碍物体,则会返回给你的信息是装在NavMeshHit里的。
public NavMeshAgent na;
NavMeshPath path = new NavMeshPath();
corners是当前路径中的拐点集合,最后一个拐点的坐标则是你最后的位置。,如果做导航路标,就让导航指针随时指着这个路径下一个拐点就OK了。
这样,我鼠标点击的位置可以通过摄像机射线得到,我最后要到达的那个点的坐标也能得到,这两个数据做个距离比较就OK了。