Can I get a design intent for the newer blackboard features. I’m sure there could be many use cases. Parent asset blackboards, global blackboards, and maybe not new but blackboard templates.
I feel templates could be helpful to add a base set of variables where you want if they would merge with what you have or create an instance of variables similar to the parent blackboard but individual per blackboard, or maybe closer, asset blackboards could have a toggle for instanced.
I understand global blackboards are a component and have do not destroy but seem very similar set up to parent asset blackboards. Just looking for some insight.
Bonus but related. Copy/pasting individual variables to another BB without copying the whole component. Like a dictionary or list being able to copy individually to another blackboard without workarounds.
Parent asset lives in assets and global BB lives on an object. Global BB shows in every node drop down everywhere and in the finder. GBB would be one instance keyed by a name and asset BB would also be one instance of variables but assignable and viewable in a more private way like a player to child graphs and an enemy that follows the same variables but has its own asset BB which is assigned to it’s children… GBB can have scene references and ABB can not…
I think your second post covers your questions? 🙂
Parent Blackboards is the newest addition. It technically also supports any type of blackboard to be a parent not only an Asset Blackboard, but for Unity editor reasons between some other reasons as well, only Asset Blackboard is currently possible to be assigned as a parent. This will probably change in the future so that for example any Blackboard can be assigned. At that point, Global Blackboard may be deprecated (not sure yet), since parent will be possible to also live in the scene and thus have scene object references, which will make GBB a bit redundant.
Your suggestion for copy/pasting single variables is nice. I’ve noted this down in the roadmap 🙂
Little update for reference. If you have multiple scenes open, and you use a Global BB variable in a scene other than the one that has the global BB. It will work in play mode and if even in a build mode when I already had had the scenes open. If you add that scene additively like using a separate game manager scene, those global variables will not hook up. The global variables cause cross scene references. The discord mentions making your game manager object a prefab and having one in each scene so on load the new one will be destroyed and it will “take over” but I could not get this to work. So if following the convention of splitting your scenes up, the references will need to be gotten by normal means. I’m using a macro with the game manager reference set up to get children of the game manager if a port on the macro is pulled from, and maybe a parent asset blackboard that has the game manager referenced so I don’t have to search for it each time.
Cross-Scene object references are not really supported by Unity and I even wonder how it worked for you in the first place :), but using Asset Blackboard parents can certainly help in many situations as long as you need variable that do no have scene object references. The thing that people mentioned in discord for self destructing managers is related to Singletons. A useful pattern which if you search for it, you will see how it can be implemented. Just search for “Unity Singleton” 🙂