HUD Canvas is something that came from UE3 (and maybe even older) and was in UE4 before UMG been introduced and stays as a option
UMG is Blueprint extension of Slate
Slate is window UI framework made specially for editor (in the past UE editor used mix of Window’s library), but it can used in game too. But Slate classes are outside of UObject envriament and outside of reflection system, thats why it needs UMG wrapper to make it work with blueprints.
You don’t need HUD to make a cursor image, you can widget that follows mouse position on viewport. Also you can use HUD class as a shell for your UMG HUD, you just need to swap few things in it.
Hi. I’m currently at the point where I want to create some kind of in-game GUI and HUD system for my project.
Would you say it’s a good idea to just ignore all the things mentioned here and use game objects that are bound to a camera (or sometimes floating in the world) to display menus, buttons and such? It seems the most flexible thing to do. Is there any reason why I should use a canvas, HUD, UMG or Slate?
Click events with collision shapes are not a problem. The only problem I see, is that very close world objects might clip through the GUI-elements, but there is probably a way to always render something on top of other stuff. At least I hope so.
I tried doing that (because I didn’t want to break into C++ but wasn’t happy with UMG), the problem was rendering text. TextRender components viewed through a camera always look pixelated and horrible unless they’re very large on screen. Slate/UMG has fancy DPI scaling, anti-aliasing, etc., to make text always look nice.