[[导航系统]]
A* 寻路算法
1. 先把场景地图划分成一个2D的网格,形成多个Node节点的二维数组(烘焙而来)。
2. Node存储的数据(动态)
gCost 距离起始点的消耗 (估价 评分)
hCost 距离目标点的估价
fCost: gCost + hCost (整体估价)
3. 比较估价的时候,优先选择fCost较小的节点,如果fCost相同,则选择hCost较小的节点。
本身Node上如果有障碍物,那么此Node不参与估价运算。
4. 由起点出发,选中起点周边9个节点,遍历九宫格,找出估价最低的节点
以此类推,所形成的Node链表就是最终路线。
5. 所有在寻路路线上参加过运算的节点,不再参与运算。
[[行为树]]
AIControl:具有移动导航功能,感知功能,用来驱动角色行为。
行为树资源:各种常见节点组成的逻辑集合,不同的对象行为树资源是同一个。
黑板资源:黑板值,用于传递数据,用来控制行为树是否可以执行某个行为或者是否需要阻止某些行为。
任务:行为树的体系中需要让AI去做的事情,可以去更新黑板值,
也可以更新位置信息,也可以调用角色的函数。
装饰器:条件判断 控制树的节点切换,是否执行某个任务节点
服务:
环境查询:消耗性能,查询情景蓝图(EnvQueryContext_BlueprintBase)