If you do this in a single actor, it’s more than OK, especially that you gated it with a boolean. If you used a widget component in Screen Space mode, you would not need to do it at all - but Screen Space may be undesired for gameplay / user experience reasons, ofc.
Note that you can simply enable / disable Tick
itself instead of using an additional variable and a Branch
. If we can’t see the widget - stop ticking.
Another good question here is - what are we really doing? It seems, at a glance, that you want to have an interact widget in every object. Would it make more sense to have 1 widget only in the player instead and show / hide that instead?
The same goes for the sphere overlap, rather than having 500 objects, each with a sphere overlap, have only 1 sphere overlap in the player. It’s the player who is the instigator of most in-game actions after all.
Consider whether the above is feasible in your case.