VR menu creation

Hello everyone!

Sorry if this has already been answered here, but I honestly can’t find it anywhere.
We are developing a game in VR where we need to:

  • The player presses a button
  • A 3D menu shows up in front of the player
  • The player selects an item of the menu by looking at it and clicking a button
  • the player teleports to a new place and the menu closes

Until now I’ve been able to set the teleport mechanic, I created a widget and set its class to a 3D actor, but I’m stuck on that. I don’t no how to make the items on the menu selectable neither I can lock the menu to the player. Can anyone help?

Thanks in advance!

In 4.13, you could make these menu entries UMG widgets that you place in the 3d world using the respective actor component. You would then have to add a Widget Interaction component to your player character, and set up its source properly. This component is then able to interact with widgets in the 3d world as if they were simply 2d.

Have a look at this:

Are you using the HTC Vive. If so this is how I set up a menu to stick to the controller.

No need for a 3d actor. just the widget.


Create a box collision and overlap event for each option.

The following hides the menu when you don’t need it.

Also its important to have collision turned off when its not visible. You don’t want to be waving your controller around and select an option.

Hey how exactly did you add the widget to the motion controller? Did you do it in the bp_motioncontroller or the pawn blueprint?
If you could help me would be fantastic!

Most likely those controller nodes (like L Shoulder) are in the VR Pawn blueprint. (They can be other places but you generally, REALLY want to keep all your control keys in one blueprint and just use them to call events on other blueprints. I learned the hard way that you can easily lose track and have multiple binds that screw up things)

What he’s doing there is he is literally making a 3D widget component attached to that controller. If you go to your motion controller BP and look in the VIEWPORT, that’s where it would be.

First, I’d start there and just put a widget as a component of the controller, just see if you can get it visible. Form there, you can use these blueprints as a guide; in the one picture I am assuming the L and R are the references to the line traces coming out of each controller. Tcla75 could tell you more.