Toggling with Widget 'screen' visibility

Hi there,

I’ve created 2 3D menu widget, which is the main menu and the options.
When the user select the option menu, the user will be transition to another area of the map where they will be able to see the option menu.

The problem I currently have is, I would like to make the Option Widget under ‘User interface’ ‘Space’ as ‘Screen’ instead of ‘World’ and when I select it as ‘Screen’, it basically appear in front of the user eyes before the user can select the options menu.

My goal is to make the option menu invisible from the beginning and when the player select the option menu, it turns visible.

And so would like to know on how do I go on doing that.

A widget component will propagate visibility to its child regardless of the mode it’s in. So you can just do this:

Thank you very much for the quick reply!

Just one more thing, as the blueprint works on the current level blueprint, if I do want it to work on a separate/different blueprint, how do I do that?

We may need more info here. Do you mean another level? Or we need to access another actor?

On the 3D menu widget :slightly_smiling_face:
It’s an actor class but it consist of the camera and widget

You need to be more specific. I don’t know what you mean. Please describe in details what needs to happen when and where?

Apologies.
So basically I have created a main menu which consist of “Start” and “Options”.
When the user select ‘Options’ the user will be directed to the options menu which consist of the actor, a camera and a widget.

I would like to know on how I can set up the visibility on the ‘options widget’ where from the start, the option screen is invisible and when the user select options, there will be a delay for a few seconds then the option screen visibility is shown.

If you do need more details, do let me know. I’ll try my best to explain :slightly_smiling_face:

1 Like

So basically I have created a main menu which consist of “Start” and “Options”.

Does this mean that Start and Options are 2 different actors in the level? Each part of the menu system is a standalone actor? This is fine, just asking so I can understand what is needed. Is this the rough setup we’re after:

Each :red_square: is a menu actor representing a different menu page, so to speak. And the goal is to navigate between them in a specific way, hiding what we left behind, and showing a new one on arrival. How close am I?


If so, how do you currently send the player to the desired menu actor?

Yes! Both are different actors in the same level. In this case, the Main menu is number 1 and Option is number 2.

image
When selecting option from the main menu, it will transition to number 2

From the main menu widget I’ve created a blueprint on the ‘options’ where when the user onclick options button, user will be transition to the option menu. The main menu widget itself has a parent class which calls the transition to one camera to the other.

1 Like

Do consider the following way I’d set it up:

  • this is a menu actor:

It has an Instance Editable variable that can point to another menu. You can have more of those, perhaps you want to navigate forth & back, or zigzag between them. The script in this menu actor:

  • I’ve placed a bunch of menus in the level and told each one where to go next using the above-mentioned variable:

Below, once a menu actor is selected, you can set up more stuff - what each widget component displays and in what mode, who is hidden and so on.

Think of this as of a template for a menu page.


You can change the order of scripted events, ofc, in case you want different / more delays and control showing / hiding better. It behaves like so:

This should support any number of menus and dramatically minimise the amount of script needed.


Not sure how your menus are made, and what else is needed. There’s always more to do. To have it work better, I’d have a base widget class that dispatches a transition call. Or have the button call an interface and send message to the owning actor.

1 Like
  • an empty widget that dispatches a call menu widgets inherit from:

image

  • each child menu can now call it:

image

  • when the owning actor registers delegates, they do so with the base widget class only:

The rest stays the same. That should be it.

1 Like

Thank you very much for the detailed response!
I was able to make it work from the information you gave me!
Was suffering for the past 2 weeks to make this work :joy:

Again, thank you very much!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.