We’ve recently run into issues with CheckEvent. It seems this condition task always returns Failure/false the first time it is checked. After the task has been used once, it seems all subsequent events are picked up normally. Is there a way to avoid the first failure?
Then my feature request: I’d like to have a different way of handling events. I’d like a ConditionTask that checks for an event (in some central location for that game object), but then removes the event (from that central location) so further checks for the same event will not trigger. I suspect this ‘check event and remove from queue/list’ idiom can be quite useful in various applications.
I imagine some kind of component (maybe a MonoBehaviour) that receives events sent to the corresponding game object. It would register all incoming events, and store them up until the next update of that component. It would then clear the list. (unchecked events are discarded) In NodeCanvas I’d like to be able to read from this component and remove events while checking for them. (like getting your email from a POP3 server) As soon as the event has been checked, other nodes will not trigger on the same event, even in the same update. The execution order would need to be set up so unchecked events are cleared after all BTs have been updated. (unless this can be integrated into the BT owner somehow)
Do you think this is useful functionality? Would you consider adding this? If not, could you give me some information on how I could attempt to make this myself? Thanks!