Hi,
We had some issues with crashing when changing levels because we didn't have all the "Get Aximmetry..." nodes in all of the levels.
Since that, I've been trying to implement a way to decouple the logic for handling the inputs from Aximmetry from the blueprints in the level. I also prefer to have as little logic in the level blueprint as possible since it's less modular and turns into spaghetti really fast.
I tried to nest the input into the game instance and pass them as a struct to the blueprints, where they would use the inputs that they need. Sadly none of the inputs appeared in the project node in the composer. After I initialized them in the level blueprint connected to the "Event BeginPlay" they were able to receive data from the Composer.
To make the initialization less painful I moved all the "Get Aximmetry..." nodes into a blueprint function library and called the data collection function from there, and sadly my input pins disappeared again.
Is there a non-hacky/elegant way to collect data from a game instance blueprint or a way to have a persistent object to receive the input? Would writing a C++ singleton UengineSubSytem take care of this or would I have the same issues as with the game instance?
The current blueprint method could still be used when it’s appropriate for performance reasons or for deeper adjustments that can’t be assigned directly to a sequence track.