为敌人添加视觉
在我们的敌人上打开rain,在眼睛图标下添加 监视器(注意此时我们添加视觉监视器):
添加后,我们发现我们的“敌人”外侧多了绿色的2个环:
这个环的范围就是我们敌人的视觉范围
此时我们可以在检视面板调节视觉的范围参数:
Range:半径
Horizontal Angle:水平角
Vertical Angle:垂直角
我们调节参数模拟出敌人的视觉范围(此时我规定z轴为敌人的正面)
现在我们来给玩家添加信号(在rain中,叫做实体Entity)
选择player如图添加:
添加视觉信号,添加后可以在面板上看到:
为MyAi_01行为树添加上根据路径巡逻,运行如图,已经能够切换行为树并根据model执行:
追逐行为的实现
创建一个导航目标,并挂载到玩家的物体上:
创建一个行为树MyAi_02 用作追逐行为树,并设置目标:
在MyAi总行为树上添加该子行为树,并如上设置。model为pursuit
现在就可以在2个状态间转换了。如图所示:
增加攻击状态(使用自定义脚本)
创建攻击行为树MyAi_03;
创建一个 Custom Action 节点,并创建一个自定义脚本Test:
打开Test我们看到,它继承于RAINAction,并实现了超类的几个方法:
using RAIN.Action; using RAIN.Core; [RAINAction] public class Test : RAINAction { //在该节点开始执行时调用 public override void Start(RAIN.Core.AI ai) { //添加一个Debug信息 Debug.Log("Attack!!"); base.Start(ai); } //返回此操作成功还是失败 public override ActionResult Execute(RAIN.Core.AI ai) { return ActionResult.SUCCESS; } //在该节点停止时调用 public override void Stop(RAIN.Core.AI ai) { base.Stop(ai); } }
运行并切换 model 到 attack ,发现控制台输出。
这表示我们的自定义节点已经被执行。