A few UMG issues

Hey y’all (Probably Nick because he’s the man),

I’ve been working a lot with UMG in the past few days really nailing down my UI. I do have a few problems though that I’d like to make known/get feedback on.

This is as of promoted source build 4.8.0-0+UE4.

  1. Text block Auto-wrap:
  • There’s no way to get how many lines are in the wrap.
  • There’s no way to get the size of the text block after it’s been wrapped. The block simply returns the size you set for it before the wrapping.
  • If you place an auto-wrap block inside of a scale box, the text won’t be scaled but the line spacing will be. The text stays at its original point size.
  • Sometimes auto-wrapped text will go beyond its own auto-bounds and be clipped.
  1. Multi-Line Editable Text Box:
  • Currently the events for OnTextChanged and OnTextCommitted simply do not work. They never get called, unless I’m doing something wrong.
  • It would be great if after so many wrapped lines, the box would get its own scrollbox inside automatically. This isn’t a big deal to do manually, but it would be an excellent addition.
  • I would also like to be able to get the size of the box after wrapping and the number of wrapped lines.
  • The Enter key is totally swallowed by this widget if it is in focus. Is there a way to override this functionality? Say I’m writing a chat thing and I want Shift+Enter to create a new line and Enter to call a custom “Submit” function while the box has keyboard focus. How would I go about doing that?
  1. General Stuff:
  • Returning the desired size of a widget never takes into account “Size to content.” This may be intended behaviour, but if that’s the case I feel that we need a function to get the size of the widget after it’s been auto-sized.
  • As far as I can tell, there’s no way to get a widget’s position in screen space. You can set it, but can’t get it.

I may add more to the thread as I find other things, but above all I want to thank you for this amazing tool! It makes UI development fast and fun!

-Jared

To add to this, 3D widgets cannot be interacted with unless the pivot for the widget component is set to (0,0).

A way to get a widget’s screen position would be awesome. I tried to move around some widgets depending on an actors screen position and it was quite a pain to get everything aligned. It works now but I still could not explain why I needed to multiply the coordinates with those values. It was basically just trial and error.
A simple ‘Set Widget Screen Position’ node would be much appreciated.

Really? That would explain a problem I was having. Thank you for the info. :slight_smile:

Totes agree, and you’re welcome! That 3D widget issue is a really weird bug, if it is one.

When using a 3D Widget, there is no way to change the class of the 3D widget at runtime.

Attempting to add a 3D widget to viewport (WidgetComponent->GetUserWidgetObject->Cast->AddToViewport) crashes the engine.

Text Blocks seem to get clipped in some situations. In this situation, I have a Text Block inside of a button. Standard Button padding (4.0, 2.0), Horizontally Align Fill, Vertically Align Center, Jutified Center, no Render Transform modifications, default Font, point size 40. The button is inside of a vertical box which is inside of an overlay inside of a size box inside of a scale box.

I’m getting cut off on the right side. To get around this I can add a space to the end of the text, but I don’t think this is intended.

Untitled-1.png

I managed to test the Pivot issue and setting the Pivot to (0, 0) made the widget work as expected. Thanks :). If it is supposed to work like that, it would be better if the default value was set so (0, 0) instead of (.5, .5).
I also stumbled upon another issue with 3D widgets. If the widget plane is almost perpendicular to the camera’s forward vector, the collision of the cursor with the widgets is slightly off. (About 15 to 20 pixels towards the viewport center when the angle is close to 90 degrees I would guess.)

I don’t know if this is already a possibility, but I’d like to be able to get all widgets of a certain type within a widget. I know we can kind of do this with User Widgets, but I’d like to be able to say, get all Text Blocks and change the font globally for each one.

Context Sensitivity does not show you options to play /stop UMG sequencer animations.

3D widgets’ drawsize cannot be changed at runtime.

Perhaps there could be some way to access the embedded widgets of a “User Created” widget nested inside of another. The idea here is that we could put a text block into its own widget with all the bells and whistles we’d want every text block to have (in my situation, I have two text blocks overlaid, one is black and the other is white in the front so that together with the black text block and the white text block’s shadow I can create an outline effect). Then when you place this widget inside another widget you could change the text directly in the designer. You can bind the text to a variable and change it at runtime, but you can’t see what it will look like until you run it.

Consider this a visibility bump. :slight_smile:

And another. I’d really like to hear about some solutions/"thanks for your bug report"s.

and a necrobump

I have this problem right now. It is really annoying. My WidgetComponent is facing my camera a distance of 90uu away. When I try hover over a button in the top left of my widget, it doesn’t react until the cursor is in the middle of the screen. Any ideas on what causes this? Will I have to forego the mouse and trace everything then simulate button presses?

Is your widget plane facing the camera or is it also rotated? If it is facing the camera it might be enough to change the widget’s pivot point. I can’t remember how but I had some trouble with that as well and editing the pivot point solved the problem.
If the plane is rotated you might be out of luck. At least I wasn’t able to find a suitable work-around.

thanks for your bug reports

But in all seriousness, please use the answerhub for submitting bug reports. Some of these are easy fixes, but didn’t happen for 4.8 because I missed this thread. Posting them on answerhub gets way more visibility from the support staff, and lets them track it and generate JIRA tickets for them. I pretty much never see JIRA bug reports referencing forum threads.

Word, I’ve moved toward Answerhub since I made this thread ~4 months ago :slight_smile: thanks for chiming in Nick!