Unity行为树AI技术分享与解析

前言

之前在公司做了一个简单的行为树相关的知识分享,感觉还是花了不少心思和精力在准备上,现在分享给大家,一起学习,共同进步!

需求

三个敌人默认在老巢,如果检测到周围有“敌人”(主角),就追随主角并且达到一定距离范围就射击,如果“敌人”跑远追不上了则返回老巢,如果在追击“敌人”的过程中,自己被射击血量低于20%则向老巢方向逃跑,并且返回老巢指定位置进行回血,当血量回满之后则返回初始位置。我方主角由玩家自己控制,可以移动,可以射击。这里AI主要是设计敌方的AI。

分析

根据上面需求,可以看出来敌方AI大体分为待机巡视、追击、返回、回血几个阶段,具体设计可以看下面效果的第六步。

效果

1.敌人初始化并且返回老巢调整面向
Unity行为树AI分享_github


2.碰到“敌人”靠近,跟踪并且射击

Unity行为树AI分享_指定位置_02


3.如果追不上“敌人”则返回到老巢

Unity行为树AI分享_行为树_03


4.如果在追击的过程中,自己被攻击且血量低于安全值则“逃跑”,返回到回血基地

Unity行为树AI分享_指定位置_04


被“敌方攻击”过程中,返回到右上角回血基地,下图是正在回血,从左下角的log即可看出。

Unity行为树AI分享_Unity_05


5.多个敌人也是可以的,我们可以通过变量控制生成几个AI敌人

Unity行为树AI分享_Behavior Designer_06


敌方是动态生成出来的,可以看到上图EnemyManager节点一开始是没有敌人的,后来我们控制生成3个敌人则运行的时候出现了3个Enemy。6.敌人的AI行为树结构

Unity行为树AI分享_行为树_07

PPT教案

以下PPT是我花了好几十个小时整理的,单纯一个复杂的一页图可能就需要画半天。

Unity行为树AI分享_行为树_08


Unity行为树AI分享_指定位置_09


Unity行为树AI分享_Unity_10


Unity行为树AI分享_Unity_11


Unity行为树AI分享_指定位置_12


Unity行为树AI分享_指定位置_13


Unity行为树AI分享_Unity_14


Unity行为树AI分享_github_15


Unity行为树AI分享_github_16


Unity行为树AI分享_github_17


Unity行为树AI分享_github_18


Unity行为树AI分享_指定位置_19


Unity行为树AI分享_github_20


Unity行为树AI分享_github_21


Unity行为树AI分享_行为树_22


Unity行为树AI分享_github_23


Unity行为树AI分享_行为树_24


Unity行为树AI分享_行为树_25


Unity行为树AI分享_Behavior Designer_26


Unity行为树AI分享_行为树_27


Unity行为树AI分享_Behavior Designer_28


Unity行为树AI分享_Behavior Designer_29


Unity行为树AI分享_指定位置_30


Unity行为树AI分享_Behavior Designer_31


Unity行为树AI分享_github_32


Unity行为树AI分享_Behavior Designer_33


Unity行为树AI分享_行为树_34


Unity行为树AI分享_行为树_35


Unity行为树AI分享_github_36


Unity行为树AI分享_Unity_37


Unity行为树AI分享_行为树_38


Unity行为树AI分享_行为树_39


Unity行为树AI分享_Behavior Designer_40


Unity行为树AI分享_行为树_41


Unity行为树AI分享_github_42


Unity行为树AI分享_行为树_43


Unity行为树AI分享_Behavior Designer_44


Unity行为树AI分享_Behavior Designer_45


Unity行为树AI分享_行为树_46


Unity行为树AI分享_github_47


Unity行为树AI分享_行为树_48




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空