InvokeEvent uses a custom implementation specific for the reflection tasks, and it's not really easy to extend for the Unity Event system. I am currently working on a UIElements version of Behavior Designer and I haven't gotten to the part where I can draw fields but UIElements offers a lot more flexibility so I am hopeful that it is included in that.
Owner.RegisterEvent(...)
For that specific use can you can use Behavior Designer events:
Events - Opsive
The event system within Behavior Designer allows your behavior trees to easily react to changes. This event system can trigger an event via code or . . .opsive.com
Within a task you can register for the event with:
Code:Owner.RegisterEvent(...)
Owner points to the current Behavior Tree object.
public class Response{
public string id;
public List<UnityEvent> events; // Not sure what this would be for Behaviour Designer Events
}
public List<Response> response;
public struct MyEvent
{
string name;
int value;
}