unity3d自動尋路插件是一款非常实用的自动寻路插件,使用该插件,可以帮助开发者快速实现自动寻路算法,有效地实现最短路径寻路效果,可以使角色找到对应的目标地点,开发出来的人物角色会更加智能,需要的朋友可以来本站下载!

插件特點
1、角色自動定位和自動尋路
2、碰撞檢測
3、高度檢測
unity3d自動尋路插件使用方法
1. 场景准备
先建立一個scene
添加一個plane,讓其坐標處于(0,0,0),並三方向scale都爲10
添加一個新的layer,命名爲Ground,並將上面建立的plane設置爲Ground層
在plane上添加若干个box作为障碍物,添加一个新的layer,命名为Obstacles, 将这些box都归为这个Obstacles层
2.加入A*
创建一个空的GameObject,命名为A*, 从Components–>Pathfinding–>Pathfinder中添加插件脚本AstarPath。可以再AstarPath的观察器中看到它被分为几个部分,其中最重要的区域是Graphs区域和底部的Scan区域,Graphs区域保存了工程中所有的寻路图,最多可以有16个,但是一般1到2个已经足够了。有几类寻路图,其中最主要的有两种:Grid Pattern Graph和Navmesh Graph.
这次就先添加Grid graph.
就如名字所述一样,Grid graph会产生一系列的网格,大小为width * height,这个网格可以放在场景中的任何地方,也可以进行旋转。节点尺寸设置了节点所占空间的大小,在这里设置为1;右侧有一个5个点组成的小选取控制,选择左下角的那个点,将其坐标设置为(-50, 0.1, -50), 其中y方向设置为0.1是为了避免产生浮点错误,因为地面plane的y向坐标是0,如果导航网格也是y向为0的话,在进行高度检测的raycast的时候,会产生问题。
高度測試:
爲了把尋路的node放置到場景中的正確位置,一般使用從node向下發射一個射線來進行檢測,尋路node會被放置到碰撞點的位置。我們將mask設置爲Ground,因爲只希望尋路節點與Ground進行檢測。
碰撞測試:
當尋路節點被放置之後,它就會被用來檢測是否可行走,一般可以使用sphere,capsule或ray來進行碰撞檢測。一般Capsule會使用和AI對象一樣的半徑和高度來進行碰撞。爲了讓AI對象和障礙物有一些邊緣,這裏將Capsule的半徑設置爲2.另外將碰撞檢測的layer設置爲Obstacles,因爲不想讓地面成爲障礙。
好了,都准备好了,点击底部的Scan,我们就可以看到grid Graph的生成了,可以再编辑窗口中看到辅助线显示的寻路网格,包括了可寻路的区域和障碍区域。
3. 加入AI
以上是对场景寻路相关的基础设置,接下来要加入AI对象进行寻路。在场景里面添加一个Capsule,并给其添加一个Character Controller组件,从Components–>Pathfinding中添加Seeker脚本。Seeker脚本是一个帮助类的脚本,用来将其他脚本的寻路请求进行处理,它也可以处理Path modifier(一般是对寻路结果进行圆滑处理的脚本)。A* pathfinding project自带了两个AI脚本用于挂接到对象上进行寻路:AIPah可适用于任何类型的寻路图;而RichAI只适用于NavMesh类型。