behaviac icon indicating copy to clipboard operation
behaviac copied to clipboard

最近发现,行为树执行期间无法FireEvent,上层设计应该怎么处理,还是说应该直接避免。

Open iammko opened this issue 5 years ago • 1 comments

目前能想到的是延迟触发,请问还有没有更好的方法

iammko avatar Sep 07 '20 03:09 iammko

不是很明白执行期间无法FireEvent是啥意思,你是多线程并发对同一个Agent进行操作吗?如果是单线程操作一个Agent应该不存在这个问题吧。

因为每次执行行为树都是同步操作,行为树执行完以后返回,等待下一次调用。调用行为树也不会阻塞,返回Running的话下次接着那个节点继续执行,如果你是指在Running期间FireEvent会导致问题,有很多种方法可以解决,官网文档:https://www.behaviac.com/concepts/

再进阶 又有聪明的读者要问了,持续返回“运行”状态的节点固然优化了执行,但其结果就像“阻塞”了BT的执行一样,如果发生了其他“重要”的事情需要处理怎么办?

MysteryAngle avatar Aug 18 '21 03:08 MysteryAngle