行为树是AI的一种,适合npc或敌人的简单智能。
这个库非常棒,实现简单高效,符合作者宣传的简单API.
树的构成
下面都属于枚举,每个枚举值都是一个一条处理分支。
enum Behave {
// 结果处理
AlwaysSucceed, // 总为真
AlwaysFail, // 总为假
Invert, // 反转结果
// 生成结果
Wait(f32), // 等待多长时间
DynamicEntity {// 生成子实体
name: Cow<'static, str>,
dynamic_bundel: DynamicBundel,
},
TriggerReq(DynamicTrigger), // 触发事件,ob
// 顺序
Sequence, // 子序列顺序执行,任意子序列失败则Sequence失败,全成功则成功,失败就返回
Fallback, // 子序列顺序执行,任意子序列成功则Fallback成功,成功就返回。
// 条件
Forever, // 无限循环
While, // 第一子序列成功后,执行第二子序列,第二子序列可选
IfThen, // 第一子序列成功后,执行第二子序列; 否则执行第三子序列,第三子序列可选
}