A* Pathfinding Project Pro(A*寻路插件) 3.7.4
分享到:
A*寻路插件是一款专用于unity中的寻路插件,原名A* Pathfinding Project Pro,是一款世界知名的寻路插件,软件根据A*算法的原理所开发,是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法使许多网络游戏中经常用到的寻路系统开发插件。
A*寻路插件拥有非常精确的导航系统,能够让寻路更加精确,并且运行速度超快且不会占用太多内存,基于Navmesh的图形构建为基于三角形的网络,每个三角形还指定AI可以行走的区域,当游戏包含甚至更多的开放区域时,这允许非常精确的移动和非常低的内存占用。如果用户想要更好的添加寻路系统,这款unity的插件A*寻路插件将会帮助你完美完成所需。
在场景中添加一些Cube 作为障碍物 Obstacles,添加一个 Capsule 作为Player,然后添加一个Plane 作为地面,再添加一个Plane,作为斜坡测试。
在创建一个GameObject,改名为 A* ,添加A Star Path (Path finder) 组件。
2、编辑场景,指定障碍物
A* 插件中,是根据 Layer 来判断障碍物的,所以我们要把 作为障碍物的 Cubes 都设置到 Obstacle 这一个Layer。
然后给我们的地板,设置Layer 为 Ground ,两块地板都是
3、生成寻路网格
选中 A* ,在Inspector 中,展开 。查看下面的面板。
如图中,
黑色箭头所指是宽高,这里的宽高,是指格子的数量。这里用到的就是 A* 的格子寻路。
调整宽高,覆盖整个Plane。
红色箭头所指,是左上、右上、左下、右下、中心 四个点,选中其中一个点,就可以调整这个点的位置。
选中中心,点击蓝色箭头所指的 Snap Size,会根据中心的位置来自动对齐。
继续设置。
红框中的Collision Testing,是生成 禁止通过 格子的。
因为我们的 Cubes 是障碍物,所以在 Mask 中选择 Cubes 所在的Layer - Obstacles。
黄色框中的Height Testing 是用来 让寻路节点 与 Ground 进行检测的,比如要爬坡的时候就需要检测高度。
设置完成后,点击Scan,就会生成寻路网格。
4、编写寻路 AI 代码
生成寻路网格之后,我们在代码中就可以使用 A* 来进行寻路了。
首先在 Player 这个 Capsule 上添加Seeker 组件。
然后新建脚本 AStarPlayer.cs 作为测试代码。
在代码中,首先我们从 屏幕发射射线,来定位目标位置。
然后使用 Seeker 来开始生成最短路径。
Seeker生成路径成功后,会把每一个节点的位置保存在 List中。
我们按照顺序读取 List 中的位置,位移Player 到对应的位置,就完成了寻路。
精确的移动,高速度和低内存占用。
基于Navmesh的图形构建为基于三角形的网格,每个三角形指定AI可以行走的区域。当游戏包含甚至更多的开放区域时,这允许非常精确的移动和非常低的内存占用,因为navmesh图可以描述具有非常少的三角形的大区域。
网格图
网格图灵活,易于使用和快速更新。以TD游戏为例。
顾名思义,网格图是通过在网格中排列节点来构建的。节点在网格坐标采样并放置在世界上。网格图由于其规则结构允许快速更新。对于TD或RTS游戏,或任何需要频繁更新图形以考虑用户放置的建筑物的其他游戏,该图表非常有用。
点图
点图用于定制和灵活性。简单地给它一些点,让它从它们构建一个图形。
点图可以从任何可以抛出的点列表中构建出来。例如,您可以使用特定变换对象的所有子元素或具有特定变量的所有对象。
自动Navmesh计算
通过点击按钮自动生成来自世界几何的导航。
使用手动导航构建可能需要几个小时的工作可以在几秒钟内完成,将Recast集成到A * Pathfinding项目中。 Navmeshes甚至可以在所有平台上重新计算游戏,允许极大的灵活性。许多寻路系统中的导航是完全静态的,因为重新计算它们的成本通常很高。此约束不在A * Pathfinding项目中。 Navmesh切割可用于在运行时修改导航,并且在使用平铺重绘图时,您可以以较低的性能命中重新计算较小的navmesh片段。重绘图可以处理巨大的世界,用户已经在游戏中使用了高达8倍8公里的地形,取得了巨大的成功。
本地避免
包括基于RVO(互易速度障碍物)的完整的本地回避系统。它允许同时对数百个代理进行人群模拟(许多计算机上有数千个)。本地避免使用不比使用统一字符控制器更难,它被设计为替代它的一个替代。
多平台
发布到Unity支持的任何平台。
在OSX,Windows,Linux,WebGL,Android和iPhone上进行测试,但是我看不出有什么理由不应该在其他平台上工作。它可以在Windows 8/10和Windows Phone上工作,但是还需要采取一些额外的步骤(文档中详细介绍),以便通过WACK(适用于Windows Store)。用户还在PlayStation Vita和WiiU上进行了测试。
很容易开始
使用系统可能看起来很困难,但开始实际上真的很容易。有了一个很好的入门指南,您可以在短时间内将系统集成到游戏中。许多复杂性也是隐藏的,所以开始一个新的路径请求只是一行代码。该项目包括13(!)示例场景,以帮助您学习如何使用它(免费版本包括一些,但不是全部,因为一些功能是专业版)。
路径修饰符
路径修改器使得从系统轻松获得一个很好的平滑路径。
该项目包括例如平滑修改器,raycast简化程序,漏斗修正器等。
写自己也很容易
定制检查员
该项目包括几个广泛的定制编辑器,以帮助您尽可能高效地工作。包括黑皮肤和浅肤色。
专业路径类型
想要你的资源采集者找到最近的资源的路径,还是只想让你的平民找到任何让他们远离邪恶敌人的道路?您可以在单个路径请求中执行此操作!搜索模式有:正常,多目标,逃离和随机。但是,与图形一样,所有这些都是作为附加组件编写的,它们不会被硬编码到系统中,这意味着您可以添加自己的专用搜索模式,而无需修改寻路核心!
保存和加载
所有的图形都可以保存到文件中,并在以后加载。您还可以使用相同的功能通过在编辑器中计算图形来减少加载时间,然后简单加载已计算的图形。移动应用的巨大胜利。
多线程
该系统是完全多线程的,能够最大限度地提高吞吐量。这也意味着在2+核心机器上运行时,寻路将对帧速率有非常小的影响。左图显示了我所做的压力测试。我运行它的计算机有4个物理内核和超线程使它8个逻辑(这就是为什么它开始在4个线程之后水平)。
在运行时图表更新
A*寻路插件拥有非常精确的导航系统,能够让寻路更加精确,并且运行速度超快且不会占用太多内存,基于Navmesh的图形构建为基于三角形的网络,每个三角形还指定AI可以行走的区域,当游戏包含甚至更多的开放区域时,这允许非常精确的移动和非常低的内存占用。如果用户想要更好的添加寻路系统,这款unity的插件A*寻路插件将会帮助你完美完成所需。
A*寻路插件使用方法
1、创建场景在场景中添加一些Cube 作为障碍物 Obstacles,添加一个 Capsule 作为Player,然后添加一个Plane 作为地面,再添加一个Plane,作为斜坡测试。
在创建一个GameObject,改名为 A* ,添加A Star Path (Path finder) 组件。
2、编辑场景,指定障碍物
A* 插件中,是根据 Layer 来判断障碍物的,所以我们要把 作为障碍物的 Cubes 都设置到 Obstacle 这一个Layer。
然后给我们的地板,设置Layer 为 Ground ,两块地板都是
3、生成寻路网格
选中 A* ,在Inspector 中,展开 。查看下面的面板。
如图中,
黑色箭头所指是宽高,这里的宽高,是指格子的数量。这里用到的就是 A* 的格子寻路。
调整宽高,覆盖整个Plane。
红色箭头所指,是左上、右上、左下、右下、中心 四个点,选中其中一个点,就可以调整这个点的位置。
选中中心,点击蓝色箭头所指的 Snap Size,会根据中心的位置来自动对齐。
继续设置。
红框中的Collision Testing,是生成 禁止通过 格子的。
因为我们的 Cubes 是障碍物,所以在 Mask 中选择 Cubes 所在的Layer - Obstacles。
黄色框中的Height Testing 是用来 让寻路节点 与 Ground 进行检测的,比如要爬坡的时候就需要检测高度。
设置完成后,点击Scan,就会生成寻路网格。
4、编写寻路 AI 代码
生成寻路网格之后,我们在代码中就可以使用 A* 来进行寻路了。
首先在 Player 这个 Capsule 上添加Seeker 组件。
然后新建脚本 AStarPlayer.cs 作为测试代码。
在代码中,首先我们从 屏幕发射射线,来定位目标位置。
然后使用 Seeker 来开始生成最短路径。
Seeker生成路径成功后,会把每一个节点的位置保存在 List中。
我们按照顺序读取 List 中的位置,位移Player 到对应的位置,就完成了寻路。
A*寻路插件软件特色
导航精确的移动,高速度和低内存占用。
基于Navmesh的图形构建为基于三角形的网格,每个三角形指定AI可以行走的区域。当游戏包含甚至更多的开放区域时,这允许非常精确的移动和非常低的内存占用,因为navmesh图可以描述具有非常少的三角形的大区域。
网格图
网格图灵活,易于使用和快速更新。以TD游戏为例。
顾名思义,网格图是通过在网格中排列节点来构建的。节点在网格坐标采样并放置在世界上。网格图由于其规则结构允许快速更新。对于TD或RTS游戏,或任何需要频繁更新图形以考虑用户放置的建筑物的其他游戏,该图表非常有用。
点图
点图用于定制和灵活性。简单地给它一些点,让它从它们构建一个图形。
点图可以从任何可以抛出的点列表中构建出来。例如,您可以使用特定变换对象的所有子元素或具有特定变量的所有对象。
自动Navmesh计算
通过点击按钮自动生成来自世界几何的导航。
使用手动导航构建可能需要几个小时的工作可以在几秒钟内完成,将Recast集成到A * Pathfinding项目中。 Navmeshes甚至可以在所有平台上重新计算游戏,允许极大的灵活性。许多寻路系统中的导航是完全静态的,因为重新计算它们的成本通常很高。此约束不在A * Pathfinding项目中。 Navmesh切割可用于在运行时修改导航,并且在使用平铺重绘图时,您可以以较低的性能命中重新计算较小的navmesh片段。重绘图可以处理巨大的世界,用户已经在游戏中使用了高达8倍8公里的地形,取得了巨大的成功。
本地避免
包括基于RVO(互易速度障碍物)的完整的本地回避系统。它允许同时对数百个代理进行人群模拟(许多计算机上有数千个)。本地避免使用不比使用统一字符控制器更难,它被设计为替代它的一个替代。
多平台
发布到Unity支持的任何平台。
在OSX,Windows,Linux,WebGL,Android和iPhone上进行测试,但是我看不出有什么理由不应该在其他平台上工作。它可以在Windows 8/10和Windows Phone上工作,但是还需要采取一些额外的步骤(文档中详细介绍),以便通过WACK(适用于Windows Store)。用户还在PlayStation Vita和WiiU上进行了测试。
很容易开始
使用系统可能看起来很困难,但开始实际上真的很容易。有了一个很好的入门指南,您可以在短时间内将系统集成到游戏中。许多复杂性也是隐藏的,所以开始一个新的路径请求只是一行代码。该项目包括13(!)示例场景,以帮助您学习如何使用它(免费版本包括一些,但不是全部,因为一些功能是专业版)。
路径修饰符
路径修改器使得从系统轻松获得一个很好的平滑路径。
该项目包括例如平滑修改器,raycast简化程序,漏斗修正器等。
写自己也很容易
定制检查员
该项目包括几个广泛的定制编辑器,以帮助您尽可能高效地工作。包括黑皮肤和浅肤色。
专业路径类型
想要你的资源采集者找到最近的资源的路径,还是只想让你的平民找到任何让他们远离邪恶敌人的道路?您可以在单个路径请求中执行此操作!搜索模式有:正常,多目标,逃离和随机。但是,与图形一样,所有这些都是作为附加组件编写的,它们不会被硬编码到系统中,这意味着您可以添加自己的专用搜索模式,而无需修改寻路核心!
保存和加载
所有的图形都可以保存到文件中,并在以后加载。您还可以使用相同的功能通过在编辑器中计算图形来减少加载时间,然后简单加载已计算的图形。移动应用的巨大胜利。
多线程
该系统是完全多线程的,能够最大限度地提高吞吐量。这也意味着在2+核心机器上运行时,寻路将对帧速率有非常小的影响。左图显示了我所做的压力测试。我运行它的计算机有4个物理内核和超线程使它8个逻辑(这就是为什么它开始在4个线程之后水平)。
在运行时图表更新
展开更多
A* Pathfinding Project Pro(A*寻路插件) 3.7.4下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: