Currently I just have cards/planes and text renders in my character blueprint for a HUD but I don’t like it sometimes like when it overlaps world geometry or shows up in reflections. but it does glow properly when I want them materials to. I’ve done some work in the past just drawing materials onto the HUD directly like a health bar but they never glow like my mesh based materials do. So what’s the proper method for making a HUD?
have you tried googling for UMG?
Isn’t that a widget though?
UE4 has 2 UI systems build in
- Is a old HUD Canvas based in class AHUD class which was in UE before UE4, it’s operates similar to HTML canvas by coding sequence of 2D drawing commands on every frame. Heres is tutorial i find: Unreal Engine 4 Tutorial - Draw Text/HUD Blueprint - YouTube But it’s not used as much after UMG appeared which gives more features and don’t require drawing code, but it’s still heavily used by debuging tools from command line
- Is Slate, UI framework originally made for UE4 Editor but it also usable in game, it work in similar fashion as Android UI system, where you create a widget which contains other a layers of other widget, and there widgets that organize positioning of contained widgets. Because Slate was originaly made for editor and is outside of UE4 reflection system it not usable in Blueprints, thats why a wrapper was made called UMG which allows to use Slate in in blueprints. Slate/UMG being “widget” does not prevent it to be used as a HUD, all you need is system that draw 2D and thats it. UMG right now is most popular UI systystem for HUD, there a lot of tutorial so as Milkazar said, google “UMG”. If you ever want to code Slate/UMG in C++, use Slate instead of UMG (which is also usable in C++), because Slate is a lot more comftible to use in C++, specially in organizing widget layout, Slate provide some operator hacks which allows to easily write down layout in C++ code. Or else you wish to use widget blueprints, then you forces to use UMG
There also 3rd party solutions, paid and free, most frequent i see is once that utlize HTML