Hi guys, so I was wondering about what be the optimal way of implementing score or any other runtime driven value that is displayed by UMG.
For example I have a simple text widget, is it best to bind a local variable to it and update it from elsewhere or should I just update it through the SetText node?
1 Like
This is the way. Event driven is the most efficient:
And this excellent post!
Namely:
Licensees often ask for general pointers on how they can lower the cost of rendering the UI in their project. When we optimize UI for our internal projects, here are our rules of thumb:
- Eliminate anything running per frame (tick/paint), especially in blueprints (tick/paint). Use blueprints purely for event based logic or short lived animations.
- Eliminate usage of bound attributes. Attributes, while useful, are not compatible with performance given how they poll every frame. Eliminating attributes bound to blueprint callable functions is especially important.
- Use invalidation. Invalidation panels prevent layout from occurring every frame on anything in the tree contained in an invalidation panel. In 4.23, there were a lot of restrictions for invalidation panels. For example, they could not support any widget ticking inside of them. 4.25 has overhauled them completely. More on that later.
1 Like