How do you create an interactive IN-GAME Building Menu ? (Not Main Menu)

Hi there, thank you for reading this if you are. So I’m on my second week of using Unreal Engine and I love this Software ! This is my first time ‘opening up’ to the community, I am new, not the brightest about how this all works but I’ve made a few projects that I’m happy from :slight_smile:

Anyways onto the Question. Plain and simple, how do you make a menu IN-GAME ? My example of such is this;

I’m trying to make this option on a 2d sidescroller game where you can ‘build various types of turrets’ using Widgets and Widget Interactions ? (I use Blueprints as well) Basically you hover your mouse over the selected area where the turret can be placed (I have a targetpoint with a static mesh there) And I’m just wondering how that can work that way ? I figured out a lot on my own and on tutorials, but I really wanna make that part of a game. I know how to make a turret, I know how to make enemies and can figure out how to make the turret hit the enemies, I can figure out more on my own it’s just I do not know how to make a little ‘sub-menu’ that you hover over and can create type 1 or type 2 turret etc

Any advice would be appreciated.

Hello! There are a lot of approaches. One of the most simple is the next: say, you have 5 menu buttons and different num of sub-menus in each. Then, you can do it like this

  • add Grid Panel with 6 rows and 2 columns
  • in the first column in the 0-5 rows just add menu buttons. This rows will have the height of 0, just auto-sizing for menu buttons
  • the last row will have the height of 1 to auto-size Grid Panel for its whole content
  • second column will be used to contain sub items with row span of 6 (meaning they will fill all space)
  • when hovering any main button just fill the second column with the buttons you have (you can either create them every time, or just create onve ant hold reference)
  • add a little delay after unhovering main buttons to give a chance to hover on sub items before they disappear