So I have a question. I have 10 (or really N) game objects that share a FSM asset and have identical BlackBoards.
At runtime I want all of these black boards to be independent so that they variables can have different values. However at Edit time, I really want them all to point to the same ‘proto’ blackboard. So I can just adjust one BlackBoard and reflect the changes.
So, if I could make them a prefab this would work perfectly, I can just change the prefab and reflect the changes. BUT for various reasons I can’t actually make these objects prefabbed.
Is there anyway to achieve this without prefabs? Like having a blackboard as a SerializedObject and a saved asset, but then instancing it on start for the FSM?
That is really interesting. Unfortunately there is no proper way of doing what you are after here, at least yet, (other than using prefabs of course).
One feature I once had in mind and is probably very well paired with your request here, is the ability to -like you said- be able to create Asset Blackboards, and have those blackboards be referenced for the GraphOwner to use instead of one found attached on the gameobject as an option.
I wasn’t actually thinking of making it a local instance of it at runtime though, but rather as a way for GraphOwners to share the same Blackboard Asset and thus variables. I could though add an option in the GraphOwner inspector to make a local blackboard instance at runtime, or simply use the reference itself.
Please let me know if you think that this will work for you and if so, I will move the feature higher in the priority roadmap list 🙂