【Unity3D插件】A*Pathfinding插件分享《A*寻路插件》

推荐阅读

Unity3d 寻路插件A*Pathfinding学习与研究

参考资料

1.A* Pathfinding Project
2.从A寻路项目开始
3.[Unity3D插件系列]-A Pathfinding Project 学习(一)

下载链接

https://arongranberg.com/astar/download
https://pan.baidu.com/s/1-nUJxwR0GOa9UfN9YuVZ1Q

从A*寻路项目开始

寻路就是寻找A点和B点之间的最佳路径,这就是A*路径发现项目所做的,在本教程中,您将学习如何在新场景中设置项目,并在避免障碍的同时获得一个简单的AI移动。

这个AI你将写将不会很先进,它只是最低数量的代码,以获得移动和跟随一条道路。如果您想要更高级的人工智能,您可以扩展本教程中将要编写的脚本,或者使用(或扩展)AIPath或里奇包中包含的脚本(见第2部分,RichAI组件的基本用法)。

概述

  1. A*Pathfinding插件的核心脚本就是AstarPath.cs脚本,它是场景中使用路径查找的组件。它是其他脚本的基础,负责生成寻路图形,并调整所有设置
  2. AstarPath.cs脚本只能在场景中存在一个,不能重复
  3. AstarPath.cs脚本可以在菜单栏->Components–>Pathfinding–>Pathfinder上找到。
  4. 第二个重要的组件是Seeker.cs组件,附加在需要使用路径查找的游戏对象上,例如AI
  5. 为了能让寻路的对象移动,需要添加脚本,这个移动的脚本可以自己编写,也可以用已经写好的移动脚本(AIPath, RichAI, AILerp)
  6. 处理路径平滑的脚本SimpleSommthModifier.cs,处理之后路径平滑或者简化一些

首先是场景准备

  1. 先创建一个Panel,让其坐标位于(0,0,0)上,然后x轴、z轴扩大10倍,y轴不变
    这里写图片描述
  2. 再创建几个Cube,设置成障碍物
    这里写图片描述
  3. 接着设置Tag Edit->Project Settings->Tags&Layers
    这里写图片描述
    一个Tag设置成Ground->地面
    一个Tag设置成Obstacle->障碍物
    将Planel的Tag设置成Ground
    将创建的一个Cube障碍物设置成Obstacle
    这里写图片描述这里写图片描述

现在我们来添加寻路网格

创建一个新的GameObject,命名为“A*”,向其添加“AstarPath”组件(菜单栏->Components->Pathfinding->Pathfinder)。
这里写图片描述这里写图片描述
Width跟Depth设置网格的长度和宽度,由于跟Unity的单位是一样的,设置成100*100就行了
NodeSize节点的宽度,设置成1就行了
MaxClimb可以爬升的最大高度
MaxSlope可以爬升的最大斜度
Erosion iterations 这个就是障碍物避让的设置,如果寻路的时候穿过障碍物的话就可以把这个设置大一些
这里写图片描述

添加Ai

这里写图片描述
添加一个胶囊体,添加移动脚本让它移动
这个时候有两种选择,1就是自己编写脚本,更能理解这个脚本的运行过程
2就是使用已经写好的脚本AIPath, RichAI and AILerp
AIPath脚本可以用于任何图形,而RichAI主要用于基于Navesh的图形。虽然AIPathRichAI脚本松散地遵循路径,但AILerp脚本使用插值非常精确地沿着路径移动,但可能不是以最现实的方式。你用哪一个取决于你的游戏。不同的脚本在不同的示例场景中使用,您可以查看它们的不同之处。


在这个案例中,我们可以添加AIPath脚本,这个组件只是一个非常简单的助手脚本,它将告诉AIPath脚本移动到特定的位置。将来,您可能会用自己的游戏特定脚本来替换这个脚本。


添加AIDestinationSetter组件,有一个名为“Target”的字段,将前面创建的“Target”GameObject分配给这个字段。
这里写图片描述

平滑

OK,对象是不是开始朝着目标点移动了。是不是感觉有什么不对劲,对,路径怎么歪歪曲曲的
这里写图片描述
这个时候就要添加光滑组件了
给对象添加上这个组件
菜单栏–>Components–>Pathfinding–>Modifiers–>Simple Smooth
现在再按下播放,路径应该看上去更流畅,正如我们所希望的。
这里写图片描述
OK。这次的学习就到这里吧,后续会有更新的。
有什么不对的请大家给我指正出来,谢谢。。。

烘培桥是指将场景中的网格图(NavMesh)生成并保存在磁盘上,以便在运行时进行快速的路径计算。要在Unity中使用A*路径查找算法,需要使用Unity的NavMesh系统,并使用A*寻路插件来执行路径计算。 以下是在Unity中使用A*路径查找算法的步骤: 1. 安装A*寻路插件:从Unity Asset Store中下载并导入A* Pathfinding Project Pro插件。 2. 创建场景:在Unity中创建一个场景,并添加游戏对象和地形。 3. 创建NavMesh:使用Unity的NavMesh系统来创建场景的NavMesh。在场景中选择菜单栏的“Window”->“Navigation”,打开“Navigation”窗口,然后单击“Bake”按钮来烘焙NavMesh。 4. 添加A*路径查找组件:在场景中选择要使用A*路径查找算法的游戏对象,然后右键单击并选择“Add Component”->“A* Pathfinding”->“A* Pathfinding Component”。这将添加一个A*路径查找组件到游戏对象上。 5. 设置路径查找组件:在A*路径查找组件的属性窗口中,设置起点和终点,以及其他路径查找参数,例如搜索半径、移动速度和路径平滑等。 6. 执行路径查找:在游戏运行时,调用A*路径查找组件的路径查找函数来执行路径查找。例如,在脚本中调用“GetComponent<AstarPath>().Scan()”函数来执行路径查找。 7. 显示路径:在游戏运行时,使用A*路径查找组件的路径可视化功能来显示路径。例如,在脚本中调用“GetComponent<AstarPath>().DrawPath()”函数来显示路径。 以上是在Unity中使用A*路径查找算法的基本步骤。通过使用A*寻路插件和Unity的NavMesh系统,可以轻松地实现高效的路径查找功能,从而为游戏开发带来更好的用户体验。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恬静的小魔龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值