unity 敌人自动攻击和寻路_【A*Pathfinding】超级简单的Unity2D寻路

2023-05-16

哈喽~我是yumir。

写过俯视角射击和“元气骑士”地图生成之后,不做个敌人AI总觉得差点什么,所以又研究了一下Unity的2D寻路。

这次我用的是A*Pathfinding的免费版。

获取方法:

在官网(A* Pathfinding Project)点击Download选项,在跳转到的页面上选择下载”Free“版本,将下载下来的文件导入到unity中,就可以开始我们的大事业了。

一、设置寻路网格

虽然也可以脚本控制,但是建议先简单搭建一个场景熟悉下插件,而且能不写代码就完成功能我觉得香得很~

在搭建好的场景中新建一个空物体,点击”AddComponent“搜索”Pathfinder“添加该组件。添加组件之后面板显示如下,点击图中框选按钮添加Grid Graph(Graphs>Grid Graph)。

由于我做的是2D寻路,所以将”2D“和”Use 2D Physic“勾选,使用2D模式,再在第三个红框的位置选择一个Layer,这个Layer表示”不能行走“的范围,也就是障碍物,做这一步的同时需要将场景中的障碍物的Layer都设置为对应的Layer。

”Width“和”Depth“分别表示网格的长高,单位是”nodes“也就是有几个格子。下面的”Node size“ 表示格子的大小也可以理解为网格的精度,这些都根据需求调整。点击下方的Scan按钮,就会扫描生成寻路网格,红色方框的部分代表不可行走,蓝色部分则反之。

那么动态生成的地图应该怎么烘焙网格呢,设置一张对应大小的网格然后在地图生成结束的时候调用插件提供的方法即可:

GetComponent<AstarPath>().Scan();

二、让敌人找到玩家

首先我们需要一个迷人的反派角色,我把玩家的贴图叠了一层红色画了个红眼睛用来充当,效果还不错。

新建一个空物体作为反派角色的父物体,在该物体上添加”AI Path“组件,而后系统会自动添加另一个组件”Seeker“,这是因为AI Path需要利用Seeker来寻路,放着别动就行,除非你打算自定义一个AI Path。

再添加一个”AI Destination Setter“组件,该组件负责更新目标位置。

AI Path主要修改以下内容:Orientation、Enable Rotation、Gravity。

再将玩家角色拖拽到AI Destination Setter的Target上,点击运行就可以看到寻路的效果。

三、简单AI实现

迷人的反派角色当然不能只是跟屁虫,这里给他写一个简单的状态机,分别又待机、追逐、攻击三个状态:

enum 

在Update中根据当前的状态类型分别调用对应的方法:

        switch (enemyState)
        {
            case EnemyState.Idle:
                Idle();
                break;
            case EnemyState.Tracking:
                Tracking();
                break;
            case EnemyState.Attack:
                Attack();
                break;
            default:
                break;
        }

AI Path没有提供停止寻路的接口,但是没关系,将速度设置为零就可以让他停下了。在各自的状态方法中改变当前的速度、状态类型、和动画:

AIPath.maxSpeed = speed;
enemyState = EnemyState.Tracking;
enemyModel.GetComponent<Animator>().SetBool("walk", true);

加上和玩家相互攻击的逻辑就是一个小游戏啦。

链接:https://pan.baidu.com/s/1khG-XNnPQIoXBmIj5VejEQ

提取码:kkm8

~~~分割线~~~

欢迎加入游戏开发群欢乐搅基:610475807

对游戏开发感兴趣的童鞋可戳这里进一步了解:http://www.levelpp.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity 敌人自动攻击和寻路_【A*Pathfinding】超级简单的Unity2D寻路 的相关文章

  • hbuilder开发网页 服务器,hbuilder设置web服务器

    hbuilder设置web服务器 内容精选 换一换 Weblogic基于JAVAEE架构的中间件 xff0c Weblogic是用于开发 集成 部署和管理大型分布式Web应用 网络应用和数据库应用的Java应用服务器 将Java的动态功能和

随机推荐