A* Pathfinding Project (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 ,两块地板都是

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

3、生成寻路网格

选中 A* ,在Inspector 中,展开 。查看下面的面板。


如图中,

黑色箭头所指是宽高,这里的宽高,是指格子的数量。这里用到的就是 A* 的格子寻路。

调整宽高,覆盖整个Plane。

红色箭头所指,是左上、右上、左下、右下、中心 四个点,选中其中一个点,就可以调整这个点的位置。

选中中心,点击蓝色箭头所指的 Snap Size,会根据中心的位置来自动对齐。



继续设置。

红框中的Collision Testing,是生成 禁止通过 格子的。

因为我们的 Cubes 是障碍物,所以在 Mask 中选择 Cubes 所在的Layer - Obstacles。


黄色框中的Height Testing 是用来 让寻路节点 与 Ground 进行检测的,比如要爬坡的时候就需要检测高度。


设置完成后,点击Scan,就会生成寻路网格。

转自http://blog.csdn.Net/huutu http://www.thisisgame.com.cn

4、编写寻路 AI 代码

生成寻路网格之后,我们在代码中就可以使用 A* 来进行寻路了。

首先在 Player 这个 Capsule 上添加Seeker 组件。

然后新建脚本 AStarPlayer.cs 作为测试代码。


在代码中,首先我们从 屏幕发射射线,来定位目标位置。

然后使用 Seeker 来开始生成最短路径。

Seeker生成路径成功后,会把每一个节点的位置保存在 List中。

我们按照顺序读取 List 中的位置,位移Player 到对应的位置,就完成了寻路。


下面是完整代码:

[html]  view plain   copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using Pathfinding;  
  4.   
  5. public class AStarPlayer : MonoBehaviour   
  6. {  
  7.     //目标位置;  
  8.      Vector3 targetPosition;  
  9.   
  10.     Seeker seeker;  
  11.     CharacterController characterController;  
  12.   
  13.     //计算出来的路线;  
  14.      Path path;  
  15.   
  16.     //移动速度;  
  17.      float playerMoveSpeed = 10f;  
  18.   
  19.     //当前点  
  20.     int currentWayPoint = 0;  
  21.   
  22.     bool stopMove = true;  
  23.   
  24.     //Player中心点;  
  25.     float playerCenterY = 1.0f;  
  26.   
  27.   
  28.     // Use this for initialization  
  29.     void Start ()   
  30.     {  
  31.         
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: astarpathfindingproject4.2.17是一个图形化寻路算法项目,它可以帮助人们快速找到最短路径。该项目使用A*算法来解决路径问题,这是一种启发式搜索算法,可以有效地降低搜索空间和时间复杂度。该项目还提供了实时交互式地图,用户可以通过该地图来展示各种路径,例如最短路径、最快路径或避免障碍路径。它的优点是其算法非常高效和快速,并且可以适用于许多规模不同的地图。在实际应用中,例如游戏开发或物流路径规划等领域,该项目都可以发挥非常重要的作用。此外,该项目还提供了用户友好的界面,让用户能够轻松上手。总之,astarpathfindingproject4.2.17是一个十分优秀的寻路算法项目,具有广泛的应用前景。 ### 回答2: Astarpathfindingproject 4.2.17是一个算法库,用于寻找最短路径。它的名字来自于A*算法,这是一种广泛应用于路径规划领域的启发式搜索算法。 该库具有高效性和可扩展性。它通过使用优先级队列来维护搜索状态,以便快速找到最好的路径。此外,Astarpathfindingproject 4.2.17可以为不同类型的地图和障碍物提供支持,以便在各种情况下进行路径规划。 该库可以很容易地与其他应用程序和游戏引擎集成。因此,它是许多游戏开发者和应用程序开发者首选的路径规划算法库之一。 总之,Astarpathfindingproject 4.2.17是一款高效、可靠的路径规划算法库,可以在各种应用场景中提供帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值