Failing this, perhaps I could create a persistent AActor / UWorld when attempting to access the plugin when it’s not initialised. The created object should then hopefully have a reference to the FTimerManager instance to permit using SetTimer(), or alternatively hooking into the created AActor’s Tick() with an appropriate ETickingGroup.
The basic pattern is:
-
Some class instance / blueprint requests the service’s functionality via my plugin.
-
If not initialised, initialise my plugin’s connection to the service.
-
Data is regularly updated in an instance of a class in my plugin (the service’s update rate is independent of any in-engine framerate, but, if new data is received, reception should ideally occur somewhere between after rendering the previous frame, and before the current frame’s physics updates), and other class instances can now call getters for it.