创建简单的行为树
操作过程
-
导入unity behavior designer v1.5.5包,这是一个状态树的插件。
-
新建一个cube,命名为NPC。
-
点击tools->behavior designer->editor,会出现状态树的搭建场景。
-
选择NPC,可以搭建NPC的状态树,NPC界面也会出现behavior tree。
-
图示位置为状态树名字。
-
简单建立一个状态树。选择tasks->actions->log为例子,会显示下图的状态树。
-
在inspector里可以修改每个状态的具体信息。
复杂任务
Composites
Sequence—实现多个任务
可以实现多个任务,简单设置2个log,分别输出“111” “222”。
Actions
log----输出
idle----停一段时间,一直running
wait----等待一个时间,再返回
behavior tree界面
options
restart when corr-----结束后,再开启。
案例:敌人的巡逻
-
导入behavior designer - movement_pack_v1.3.2包。
-
建立一个场景,包括地面与敌人enemy。为敌人建立状态树,改名为enemyAITree。添加action->movement->patrol。
patrol----控制两点间移动 -
设置4个空物体作为巡逻点。
-
为地面添加寻路系统,敌人添加NAV mesh agent。
-
设置patrol任务。
waypoints----巡逻点
案例:控制主角行走
-
建立player,为player添加NAV mesh agent,状态树。
-
seek的设置
target—目标点
绿色为player
案例:控制主角的追寻
-
判断player是否看到敌人。状态树添加conditionals->movement->can see object。
target object-----看到的目标
object layer mask-----看到的层
view distance -----观看到的距离 -
通过中间变量传递。设置多个不同类型的变量
-
为第一个seek,can see object以及第二个seek修改信息。
-
添加一个Sequence,一个selector。最终的状态树。
-
Sequence