Hello eveyone! I’m currently working on a research project involving NPCs and I’m basing my AI-logic on the brand new Behavior package just released by unity. The package fits great for my needs of action-based behavior, control flow, AI-authoring and also debugging, but I’ve encountered some missing features that I’m not sure how to overcome. I’ll make a list to keep them separate and clear.
-
BlackboardVariables cannot be collections of any type: i’d like to have a list of Transform to pick one of it randomly and move my character to, but I could not find a way to define it in the BehaviorGraph blackboard.
I resolved just using a list of GameObjects but that would be great to have control for generics list too, as i would do in code defining List<Transform> -
Actions cannot extend other actions: I tried to make a new Action extending an existing one from script (not creating it from the Graph Editor but directly in my IDE), but when I try to add it on the graph it doesn’t appear on the “Add > Action” menu.
Sometimes that would be useful to have a parent Action that defines a generic behavior and then child Actions that modify or extend this behavior. The feature I’d like to have is exactly the same of OOP Inheritance paradigm. -
UnityEvent cannot be referenced in graph: anytime I have an event occuring in my scene from various other C# scripts (not related to Actions or any of the Behavior package scripts) i typically use UnityEvents to handle them. I’ve seen that this variable type cannot be added in the control flow system of the behavior graph. I think that could be great to have it integrated in order to interrupt the execution flow of the graph and perform some other Actions “requested” by the event.
I’ve found that the package implements an EventChannelBase class but from the manual I cannot really understand how to use it and extend it for my needs. Do you know any tutorial or reference that explains how to use it?
Is there any way I could handle these problems (apart from the few mentioned I already applied) in an elegant and structured way? Any help would be really appreciated, thank you in advance.