行为树是在游戏开发中常见的业务解决方案。
可用于在怪物AI、新手引导、技能逻辑和机器人等模块中进行可视化的流程控制。
行为树就其运行过程可分为轮询驱动与事件驱动两种,
前者会在每个节点上有一个Update方法用于返回当前节点状态(正在运行、运行成功或运行失败),对于当前所有行为树对象正
在运行的所有节点,每帧都会去调用它们的Update方法以获取当前运行状态以作后续处理。
而后者则没有Update方法,只在子节点运行结束时去通知父节点自身的运行状态,相比前者会更具性能优势,
行为树的节点可被分为4大类:
1.复合节点:CompositeNode
2.装饰节点:DecoratorNode
3.条件节点:ConditionNode
4.动作节点:ActionNode
复合节点(如序列节点、并行节点等)具有多个子节点,会根据特定规则去逐个运行或同时运行所有子节点
装饰节点(如反转节点、成功节点等)仅有一个子节点,会根据子节点运行结果来决定自己的运行结果。
条件节点没有子节点,主要用于行为节点的前置状态判定,如判定是否存在目标,血量低于xxx,目标是敌方还是友方
行为节点没有子节点,位于整个行为树的末端以负责最终的逻辑执行,通常会封装具体模块的业务逻辑(如寻路、攻击等)。
标签:状态,简谈,Update,行为,节点,运行 From: https://www.cnblogs.com/flamesky/p/18644213