巡逻敌人
需要知识
枚举,接口,动画,BTT,BTD,Spline
创建巡逻路线
创建路线
一个actor一个component
且direction值为-1到1
设置增加函数
在actor中创建 即添加到尾再调头
返回坐标函数
动画通知为montageNotify
创建蓝图接口调用路线
Character先创建变量
可实例化
然后创建蓝图接口
实现接口函数
在character加入蓝图接口后实现接口函数
创建BTT 路线跟随
放入行为树进行测试
会发现跑的很快且不够连续
创建BTT
调整行为树和移动流畅
Character中修改值
速度改变
创建枚举
判断切换
接口设置速度变换函数
设置BTT来修改速度
就可以在行为树中设置了
状态切换
同理创建,状态枚举
在黑板中创建枚举变量来获取character的状态放到行为树中
在控制器创建函数实现Passive和Attacking
实际就是给黑板传值
tip
本来想做一个函数来复用发现不行
行为树黑板状态设置
右键添加BTD的黑板
在没有ai感知情况下怎么调试
最简单的就是按键调试
测试会发现很多问题,什么焦点没清楚什么的
改一改行为树节点顺序加入之前的清除焦点
优先级
根据值中断还是根据结果改变中断
我们选择根据结果改变中断
observerAborts不同的选择,节点就会不同颜色
意思就是相应颜色会直接中断
即如果状态从攻击发生变化,绿色内容都将中止或取消
因此两个黑板状态选择的都改为Self
Aimoveto需要点时间进行,所以不会立刻中断
因此需在BTT路线移动强行停止移动
移除武器
与添加武器异曲同工
下面是截图
注意是montageNotify不是newnotify
整理逻辑
对行为树的整理
下一篇将使用感知组件
现在更换敌人状态是靠debug
如果使用感知组件的话,将是用听,看等
文章会陆续完善
如果文章出现错误,可在评论区指出,或者私信来共同解决