How do I click through a Screen widget to a World widget?

Hi there, I currently have a widget with buttons on the left and right that is added to the viewport, there is a big gap in the middle. Through this I want to be able to click on a widget that is in the World Space via a widget component in a BP.

However, when I add it to the viewport I can’t seem to click through the middle gap to the world widget in scene behind it, no matter if I make the whole button canvas/both buttons non-hit testable, a lower Z order, or non focusable.

Have you tried passing Unhandled during onMouseDown?

Hey there, how would I go about doing that? I’ve had a look and seen others do it via an override function but I don’t actually have “On Mouse Down” on my override functions in the widget, just stuff like on Mouse Leave and On Mouse Button Down.

That would be it:

Choosing Unhandled lets the input tunnel to whoever next may be in line to process it. Should work, fingers crossed. Do tell.

Thank you so much for the quick replies! I’ve set it exactly as you’ve put but there is no change, do I need to add more functionality to this to get it working? I’ve attached an image of the widget and then an image of it overlaying in-game, with the Play widget I can’t interact with behind it in World space.

Seems the only way I can get the Play button to even register is if by referencing the left/right buttons and doing remove from parent, very odd!

This is the setup that I understood:

A 2d widget being clicked through and hitting a world space widget component in the back. The gray border is set to Not Hit-Testable (Self). This actually works fine even without overridding the onMouseDown as the border does not consume anything. You’d need the override if you were hitting Visible elements.

Do note that if the click-through widget has a button:

It couldn’t be clicked through (not without jumping through some hoops) as buttons consume input quite hungrily. You did mention clicking through a gap so that should not be an issue, though.

Can the 3d widget component be interacted with at all, even though we’re not clicking through something else? Perhaps the widget component’s Received Hardware Input is unticked? Can you confirm?

Also, how do we know we’re not interacting with the Play widget? As in, how is this being tested?

This is very strange! Received Hardware Input is ticked. If I remove the Add to Viewport node after creating the leftright widget I can click through to the Play button just fine.

I’ve gone ahead and made a new left/right button from scratch and now it’s working just fine. Not sure if this was a bug or something, the widget features seem to have a lot of bugs where things don’t update, at least in my experience so far.

Really appreciate your help, hopefully I don’t run into this again. If you have an email or something and you don’t mind me popping questions time to time that’d be awesome, would be happy to donate some money here and there :smiley:

Ah wicked! The engine has its quirks, for sure. The classic turn it off & on again works like a charm half the time.

Feel free to @Everynone me, or send a DM.

1 Like