Why does a behavior tree decorator not run during execution?
I've got a behavior tree with a movement task in it. I have a decorator on the movement task node that aborts self if the movement gets too far from a given point. The problem is that the decorator conditional test isn't run until the movement task is completed. So basically the distance checking decorator isn't being run while the node its decorating IS being run.
The point is, you can't exit a node that is currently running, because the decorators that wrap it aren't being checked during the execute cycle. What should (I think) happen, is that during the execute update, decorators should be able to alter the returned execute value (i.e. instead of running, it should return failed/complete or whatever).
Reproduction: Make a BT with a moveto node in a sequence, have a decorator that should exit that movement (I use a distance from a starting point check as my test) and watch as the movement completes rather than stopping part-way through as expected.
Any advice welcome here.
asked Sep 10 '14 at 04:13 PM in Bug Reports
What zoombapup (hi Phil!) said is accurate. Currently there's no way to have a BP-implemented decorator that will be asked to evaluate it's condition every frame. I've taken a note and will add this option soon-ish (4.6?). How about if a decorator has
answered Oct 21 '14 at 08:32 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here