Short take: I’m building a map widget with fast travel points that are separate widgets generated during runtime on top of the map. When I make my fast travel point widgets into child widgets of my map, they don’t work. They do work when they are just added to viewport. Why? And how to fix this?
Longer story: The layout goes something like: Under is a background, on top of that a map and on top of that some other stuff like player location cursor. That is the main map widget. On top of that I’m spawning fast travel points from another widget. The fast travel points have two images (a hover over image that pops up with On Mouse Enter event) and a button that is see through. They are set to z-order so, that the button is at the top and the images below. I have a function that pulls some information regarding the placement of the fast travel locations. The main key here is, that they are generated during runtime when the map is opened, and unfortunately this is essential to the game and can not be changed.
Problem is, I’ve done a zoom function on my map and I need the fast travel points to scale with that and stay at the same place. The easiest way to do this, is to child my fast travel points into the main widget. I first childed them to the main map widget itself and this does not work at all. They don’t even become visible. After this I made a separate panel with a higher z-order and now I have my fast travel points visible. In both of these situations, however, the mouse input is not working. It works fine if I add them with “Add to viewport” but this will not allow me to use my zoom function as they do not scale.
All the other panels and images are set to self hit test invisible, so they are not consuming my inputs. Is this a bug on the add child issue? Do I need to somehow procedurally make separate buttons for the main widget (is this even possible?) or add some sort of extra layer here? I’ve tried quite a few things, but nothing seems to work.