A class for creating a behavior tree decorator node to iterate through a vector of items.
More...
A class for creating a behavior tree decorator node to iterate through a vector of items.
- Given an instance of std::vector<BT::Any> which is provided on an input data port and contains N items, set the value of an output data port to the item in the vector which is at index 0 and then tick the ForEach decorator's child node until the child returns SUCCESS or FAILURE.
- If the child returns SUCCESS, set the value of the output data port to the item at index 1 and repeat ticking the child node.
- If the child returns FAILURE, stop iterating through the vector or ticking the child and return FAILURE.
- Repeat until we have iterated through all elements of the input vector, and finally return SUCCESS.
For each element set in the output, the index of the element in the input vector is also set in the index
output data port. Therefore this Behavior outputs pairs [index
, out
] for each element in the input vector, containing the element index (starting at 0) and its value.
NOTE: The output values are only expected to be used by the child node or subtree of the ForEach node which sets it. While it is possible to access these ports from elsewhere in the behavior tree, this may result in unexpected behavior so it is not recommended.
Data Port Name | Port Type | Object Type |
vector_in | input | std::vector<BT::Any> |
index | output | int |
out | output | BT::Any |