本节目标:
Enemy看不到人时 随机巡逻
Enemy看到人时 跟随
UE里的AI感觉是一个非常典型的黑板风格(想找之前软件体系结构课上的笔记 结果找不到了5555),印象很深刻就是有控制器、有分发器、有黑板,就是解耦逻辑与数据。
AIController运行行为树,行为树可以从黑板里读取
行为树:希望AI进入的状态。通过在 行为树 中布局出AI可能进入的状态,有助于你了解进入这些状态需要创建何种类型的逻辑和规则。
行为树
看到玩家前-随机巡逻
看到玩家后-跟随玩家
每个Task最后别忘执行完成执行节点
Task - BTT_RandomPatrol
Task - BTT_FollowPlayer
黑板
目前只需要存一个变量就是HasLineOfSight
AI Controller
和蓝图类的绑定
和行为树的绑定
这个绑定比较灵活,Controller可以和当前的绑定也可以和别的行为树绑定
AI 感知添加在AI Controltroller组件中
【其实在这里有一个思索是 为什么不把AI感知添加在那个蓝图类里,最直观的原因是蓝图类里获取黑板不好? 感觉AI Controller是比蓝图Actor更抽象的一层概念 他更像定义一个大脑】