This is probably really easy, but I’m massively more familiar with C++ than blueprint and I’m having a heck of a time figuring it out- I have an actor named WorldManager who runs most of the game logic, and that actor’s code has a BlueprintImplementableEvent event that executes whenever time moves forward:
What I’m having a really hard time understanding is how I should pass messages between the two: how do I configure this so that when AdvanceTimeEvent fires from my world manager, the level blueprint’s AdvanceTime event gets called and passed the int32 I set in AdvanceTimeEvent?
I would use the GameState class for this. It is meant to log the current State of the Game and can be accessed
easily in every Blueprint through a global pointer (GetGameState). You can set it in the GameMode.
You can use your LevelBlueprint to pass the Ultra_Dynamic_Sky reference to the GameState.
On BeginPlay, you get your GameState class, cast it and set a variable which you will need to create in your GameState
class to the Ultra_Dynamic_Sky. Then you have the Reference in the GameState and calling events like the one
in your first post will be easy peasy.
Otherwise, you can try using EventDispatcher like Devil said. But i would try to go the GameState way (:
No problem. Your best bet is to learn about the Basic GamePlay Framework of Unreal. You will find a lot of useful classes like GameState, PlayerState, GameInstance etc.