[[导航系统]] 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)